Angular:在ng-model中输入范围内设置的值

时间:2015-09-04 15:32:01

标签: angularjs

在ng-model中,我想设置我的范围中定义的默认值,但是无法识别该值。

这是我的控制人员:

$scope.defaultRole = "Admin";

我的观点:

<input type="text" 
class="form-control" ng-model="user.role='{{defaultRole}}'">

但我在输入文字中输入了 {{defaultRole}} 而不是管理。也许这是一个形成问题,但我不知道如何让它发挥作用。

注意:我可以把ng-model =&#34; user.role =&#39; Admin&#39;&#34;直接,但我想从范围。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您不了解ngModel的工作原理。 ngModel需要一个可赋值的角度表达式。表达方式是双向的。这意味着

  • 填充输入字段,angular评估表达式
  • 当输入字段中输入的值发生更改时,ngModel表达式引用的变量将设置为输入的值

所以,你需要的只是

<input type="text" class="form-control" ng-model="defaultRole">

这将读取defaultRole变量并使用其值填充该字段,反之亦然。

如果您希望使用输入的值填充user.role,并且默认情况下字段具有defaultRole值,那么它应该是

<input type="text" class="form-control" ng-model="user.role">

并且控制器应该

$scope.user.role = $scope.defaultRole;

或者,如果用户尚未存在

$scope.user = {
    role: $scope.defaultRole
};

user.role初始化为默认值。

答案 1 :(得分:0)

您可以使用ng-init执行此操作。 ng-model并不假设要处理做作。这将通过角度直接完成。

<input type="text" class="form-control" ng-model="user.role" ng-init="user.role = defaultRole">

Working Fiddle