Объявить несколько значений в 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>

похоже, не работает.

Ожидаемое спасибо

Ответ 1

Используйте функцию, более читаемую:

ng-init="init()"

и

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

Или, если нужно, разделите встроенные переменные с помощью двоеточия:

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

Ответ 2

Иногда он не идеален, чтобы поместить переменные в функцию. Например, ваш бэкэнд в экспресс, и вы делаете файл с использованием нефрита.

С помощью Express.js вы можете отправлять локальные переменные в html. Angular может принимать эти переменные с помощью

ng-init=""

Использование ";" можно иметь несколько переменных

Пример

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

Ответ 3

 <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; };

  });

Ответ 4

Я предпочитаю обертку с переменной объекта init:

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