Поэтому мне интересно, как я могу объявить несколько значений в одном 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>
похоже не работает.
Ожидаемая благодарность
javascript
angularjs
Cosmin
источник
источник
"a = 1, b = 2"
было бы неразумно, так как это javascript, а точки с запятой - это те, которые разделяют утверждения, но идеяОтветы:
Используйте функцию, более читаемую:
ng-init="init()"
А также:
$scope.init = function() { $scope.a = 1; $scope.b = 2; }
Или, если необходимо, разделите встроенные переменные точкой с запятой:
ng-init="a = 1; b = 2"
источник
ng-init="c = a + b; a = 1; b = 2"
и посмотреть, каков результатc
- Лучшее предположение, он идет слева направо.Иногда не идеально помещать переменные в функцию. Например, ваш бэкэнд находится в экспресс-режиме, и вы визуализируете файл с помощью 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; }; });
источник