假设您有一个具有从数据库加载的值的表单。您如何初始化ng-model?
例:
<input name="card[description]" ng-model="card.description" value="Visa-4242">
在我的控制器中,$ scope.card最初是未定义的。除了做这样的事情,还有别的办法吗?
$scope.card = { description: $('myinput').val() }
这是新的Angular应用程序中的常见错误。如果可以避免,您不想将值写入服务器上的HTML。如果确实如此,那么如果您可以摆脱让服务器完全呈现HTML的局面,那就更好了。
理想情况下,您要发送Angular HTML模板,然后通过JSON中的$ http下拉值并将其放在您的范围内。
因此,请尽可能执行以下操作:
app.controller('MyController', function($scope, $http) { $http.get('/getCardInfo.php', function(data) { $scope.card = data; }); }); <input type="text" ng-model="card.description" />
如果绝对必须从服务器将值呈现到HTML中,则可以将它们放在全局变量中,并使用$ window访问它们:
在页面标题中,您应该写出:
<head> <script> window.card = { description: 'foo' }; </script> </head>
然后,在您的控制器中,您将像这样:
app.controller('MyController', function($scope, $window) { $scope.card = $window.card; });
希望对您有所帮助。