Então, estou me perguntando como posso declarar vários valores dentro de um único ng-init, sem ter que criar algum hash estranho, que eu preciso sempre acessar especificamente.
então basicamente eu gostaria
<div ng-init="a = 1, b = 2">{{a}}</div>
e estou dizendo que gostaria de evitar ter que fazer
<div ng-init="unecessary_bs = {a: 1, b: 2}">{{unecessary_bs.a}}</div>
No entanto, o razoável:
<div ng-init="a = 1, b = 2">{{a}}</div>
não parece funcionar.
Obrigado antecipado
javascript
angularjs
Cosmin
fonte
fonte
"a = 1, b = 2"
não seria razoável já que é javascript, e ponto-e-vírgula é que separa os enunciados, mas a ideia continua a mesmaRespostas:
Use uma função de maneira mais legível:
ng-init="init()"
E:
$scope.init = function() { $scope.a = 1; $scope.b = 2; }
Ou, se necessário, separe as variáveis embutidas com um ponto e vírgula:
ng-init="a = 1; b = 2"
fonte
ng-init="c = a + b; a = 1; b = 2"
e ver qual é o resultadoc
- Melhor palpite, vai da esquerda para a direita.Às vezes, não é ideal colocar as variáveis em uma função. Por exemplo, seu back-end é expresso e você está renderizando um arquivo usando jade.
Com Express.js você pode enviar variáveis locais para o html. O Angular pode aceitar essas variáveis com
ng-init=""
Usando ";" pode-se ter múltiplas variáveis
Exemplo
ng-init=" hello='world'; john='doe' "
fonte
Eu prefiro empacotar com a variável init do objeto:
<div ng-init="initObject = {initParam: 'initParamValue', anotherOne: 'value'}"></div>
fonte
<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>
E
var modulse = angular.module("app",[]); modulse.controller("TodoCtrl", function ($scope) { $scope.todos = [ {text:'todo1'}, {text:'todo2'}]; $scope.init = function (todo) { return todo.text; }; });
fonte