将ng-model重新绑定到服务对象

时间:2015-07-06 22:50:39

标签: javascript angularjs angular-ngmodel

我有一个视图,其中包含一个首先连接空服务对象的ng模型。由于对象为null,即使值可用,ng-model也不会绑定到此值。有什么方法可以将ng-model重新绑定到可用的值。我不想使用ng-change作为ng-change只是触发单向绑定。 这是掠夺者。

http://plnkr.co/edit/4jILPHJy2P6ueIaJSlNl?p=preview

在plunker中,formController中有一个服务'myService'。在html中,我将ng-model与服务myService.name中的变量绑定在一起。

<input type="text" class="form-control" name="name" ng-model="myService.name">

我想要做的是当我点击按钮时,因为服务名称被初始化,所以我可以将ng-model与服务变量绑定。

2 个答案:

答案 0 :(得分:1)

在原始代码中,myService不在ng控制器的$ scope中。因此,即使您使用myService.name绑定输入,ng-model也不是您创建的myService。

您必须将myService分配给$ scope,如下所示,以使您的代码正常工作。

{{1}}

但是我建议你在$ scope中创建一个局部变量,并将服务中的值赋给它,而不是获取整个服务对象。这是ng服务的全部目的,以提供某种服务&#39;。

答案 1 :(得分:0)

另一种选择可能是,在您的服务中使用Init功能并将您的范围传递到您的服务中。然后在控制器顶部调用init函数。像你的服务一样:

Init: function(scope){
      scope.myService = this;
}

然后在你的控制器中:

.controller('formController', function($scope,myService) {    
     myService.Init($scope);    
});

现在你应该可以使用:

<input type="text" class="form-control" name="name" ng-model="myService.name">
相关问题