1
HTML:我可以在html中啓動一個Angular ngModel,然後在控制器中使用它的值嗎?
<div ng-controller="MyController">
<form>
<!-- one way to do it -->
<input ng-model="var1" value="1"></input>
<!-- another way, not approved per angular documentation outside of ngRepeat -->
<input ng-model="var2" ng-init="var2=2"></input>
</form>
</div>
JS:
angular.module('myApp', []);
angular.module('myApp')
.controller('MyController', ['$scope', function ($scope) {
console.log("value of var1 is " + $scope.var1);
console.log("value of var2 is " + $scope.var2);
$scope.var1 = 3;
$scope.var2 = 4;
}]);
結果:
value of var1 is undefined
value of var2 is undefined
[setting values to 3 and 4 displays fine in inputs]
因此,它似乎是控制器代碼輸入NG-模型之前運行正在評估參數。考慮到控制器早於輸入標籤發佈,這是有道理的。
問題:
是否有任何方式讓控制器邏輯讀取和尊重VAR1和VAR2的初始值?
嗯,所以如果我想在服務器端生成html和js時初始化模型,我必須以某種方式在js中執行此操作?像做一個返回一些預生成的json的服務? – 2015-03-31 21:19:18
我可以把價值在一個典型的數據屬性,並閱讀它使用jquery/jqlite? – 2015-03-31 21:20:07
Angular的整個想法是你不生成HTML服務器端。您可以使用服務器來構建「模型」(在控制器中)並讓HTML根據此模型進行渲染。這是爲了更好地分離問題:服務器只提供信息並且沒有顯示的概念。 – floribon 2015-03-31 21:22:05