Entonces me pregunto cómo puedo declarar múltiples valores dentro de un solo ng-init, sin tener que crear un hash extraño, al que siempre necesito acceder específicamente.
así que básicamente me gustaría
<div ng-init="a = 1, b = 2">{{a}}</div>
y digo que me gustaría evitar tener que hacer
<div ng-init="unecessary_bs = {a: 1, b: 2}">{{unecessary_bs.a}}</div>
Sin embargo lo razonable:
<div ng-init="a = 1, b = 2">{{a}}</div>
no parece funcionar.
Gracias anticipadas
javascript
angularjs
Cosmin
fuente
fuente
"a = 1, b = 2"
no sería razonable ya que es javascript, y el punto y coma son los que separan las declaraciones, pero la idea es la mismaRespuestas:
Usa una función, mucho más legible:
ng-init="init()"
Y:
$scope.init = function() { $scope.a = 1; $scope.b = 2; }
O, si es necesario, separe las variables en línea con un punto y coma:
ng-init="a = 1; b = 2"
fuente
ng-init="c = a + b; a = 1; b = 2"
y ver cuál es el resultadoc
: la mejor suposición es que va de izquierda a derecha.A veces no es ideal poner las variables en una función. Por ejemplo, su backend está en express y está renderizando un archivo usando jade.
Con Express.js puede enviar variables locales al html. Angular puede aceptar estas variables con
ng-init=""
Utilizando ";" uno puede tener múltiples variables
Ejemplo
ng-init=" hello='world'; john='doe' "
fuente
Prefiero envolver con la variable init del objeto:
<div ng-init="initObject = {initParam: 'initParamValue', anotherOne: 'value'}"></div>
fuente
<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>
Y
var modulse = angular.module("app",[]); modulse.controller("TodoCtrl", function ($scope) { $scope.todos = [ {text:'todo1'}, {text:'todo2'}]; $scope.init = function (todo) { return todo.text; }; });
fuente