我有一个视图,其中包含一个首先连接空服务对象的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与服务变量绑定。
答案 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">