我希望能够为我的模型属性设置初始值
<input type="text" ng-model="selectedModel.title" name="title" value="" >
如上所示,我希望属性的值为空字符串,以便最初使用空字符串实例化输入文本字段。
但是,目前ng-model="selectedModel.title"
会覆盖value=""
。
我如何解决这个问题?
答案 0 :(得分:17)
您应该在控制器中执行此操作:
angular.module('MyModule').controller(
'myController',
function ($scope, MyService) {
$scope.selectedModel = { title: '' };
}
// if you're using a service
MyService.getModel().then(function (model) {
$scope.selectedModel = model;
// selected model doesn't have a title set, so give it a blank string as default
if (angular.isUndefined($scope.selectedModel)) {
$scope.selectedModel.title = '';
}
});
);
你可以read more about setting the initial state of $scope in your controller here。
ng-init的官方AngularJS文档表明ng-init只有一个用途,“用于别名ngRepeat的特殊属性”。在你的情况下,你最好使用控制器初始化值。
您可以使用ng-init:
<input type="text"
name="brand"
ng-model="selectedModel.title"
ng-init="selectedModel.title=''">
</input>