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

stc*_*cho 15 javascript angularjs angular-ngmodel

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

<input type="text" ng-model="selectedModel.title" name="title" value="" >
Run Code Online (Sandbox Code Playgroud)

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

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

我如何通过这个?

Rud*_*lah 18

在控制器中设置初始值

您应该在控制器中执行此操作:

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 = '';
    }
  });
);
Run Code Online (Sandbox Code Playgroud)

您可以在此处阅读有关在控制器中设置$ scope的初始状态的更多信息.

其他选项:ng-init

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

你可以使用ng-init:

<input type="text"
       name="brand"
       ng-model="selectedModel.title"
       ng-init="selectedModel.title=''">
</input>
Run Code Online (Sandbox Code Playgroud)