如何在angularjs中将ng-model的初始值设置为空字符串?

时间:2014-08-01 16:15:41

标签: javascript angularjs angular-ngmodel

我希望能够为我的模型属性设置初始值

<input type="text" ng-model="selectedModel.title" name="title" value="" >

如上所示,我希望属性的值为空字符串,以便最初使用空字符串实例化输入文本字段。

但是,目前ng-model="selectedModel.title"会覆盖value=""

我如何解决这个问题?

1 个答案:

答案 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

ng-init的官方AngularJS文档表明ng-init只有一个用途,“用于别名ngRepeat的特殊属性”。在你的情况下,你最好使用控制器初始化值。

您可以使用ng-init

<input type="text"
       name="brand"
       ng-model="selectedModel.title"
       ng-init="selectedModel.title=''">
</input>