[javascript] ng-init에서 여러 값 선언

그래서 이상한 해시를 만들지 않고도 단일 ng-init 내에서 여러 값을 선언 할 수 있는지 궁금합니다. 그러면 항상 구체적으로 액세스해야합니다.

그래서 기본적으로

<div ng-init="a = 1, b = 2">{{a}}</div>

그리고 나는 할 일을 피하고 싶다고 말하고 있습니다.

<div ng-init="unecessary_bs = {a: 1, b: 2}">{{unecessary_bs.a}}</div>

그러나 합리적인 :

<div ng-init="a = 1, b = 2">{{a}}</div>

작동하지 않는 것 같습니다.

기대되는 감사



답변

더 읽기 쉬운 함수를 사용하십시오.

ng-init="init()"

과:

$scope.init = function() {
    $scope.a = 1;
    $scope.b = 2;
}

또는 필요한 경우 세미콜론으로 인라인 변수를 구분합니다.

ng-init="a = 1; b = 2"


답변

때로는 변수를 함수에 넣는 것이 이상적이지 않습니다. 예를 들어 백엔드가 익스프레스 상태이고 jade를 사용하여 파일을 렌더링합니다.

Express.js를 사용하면 로컬 변수를 html로 보낼 수 있습니다. Angular는

ng-init=""

“;”사용 하나는 여러 변수를 가질 수 있습니다.

ng-init=" hello='world'; john='doe' "


답변

개체 초기화 변수로 래핑하는 것을 선호합니다.

<div ng-init="initObject = {initParam: 'initParamValue', anotherOne: 'value'}"></div>


답변

 <div ng-app="app">
  <div ng-controller="TodoCtrl">
    <ul>
      <li ng-repeat="todo in todos" ng-init='initTodo = init(todo)'>
        <span class="done-{{todo.done}}">{{todo.text}} |
                               and todo.text via init:{{initTodo}}</span>
      </li>
    </ul>

  </div>

  var modulse = angular.module("app",[]);

  modulse.controller("TodoCtrl", function ($scope)  {

            $scope.todos = [ {text:'todo1'}, {text:'todo2'}];

            $scope.init = function (todo) {  return todo.text; };

  });


답변