AngularJS - 服务与控制器对话
AngularJS - Service talking to Controller
Angular JS 具有非常酷的双向绑定功能,它允许控制器数据在视图更改时自动更新(反之亦然)。
今天我们可以有依赖于服务的控制器。
服务是否有可能依赖于控制器?
例如如果服务想根据自己的意愿从控制器获取某些数据,这可能吗?
此外,是否可以扩展 ng-model 变量的范围以作为变量传递给服务(连同控制器),从而自动保持同步?
谢谢。
当您将多个变量分配给同一对象时,每个变量都是对同一对象的引用。
以下为演示。根据用例,这可能不是首选方法
app.controller('MainCtrl', function($scope, MyService) {
$scope.mainModel = MyService.myObject;
})
app.controller('OtherCtrl', function($scope, MyService) {
$scope.otherModel = MyService.myObject;
})
app.factory('MyService', function() {
return {
myObject: {
name: 'test'
}
}
});
以下两个输入将显示相同的值
<div ng-controller="MainCtrl">
Name:<input ng-model="mainModel.name">
</div>
<div ng-controller="OtherCtrl">
Name:<input ng-model="otherModel.name">
</div>
Angular JS 具有非常酷的双向绑定功能,它允许控制器数据在视图更改时自动更新(反之亦然)。 今天我们可以有依赖于服务的控制器。 服务是否有可能依赖于控制器? 例如如果服务想根据自己的意愿从控制器获取某些数据,这可能吗?
此外,是否可以扩展 ng-model 变量的范围以作为变量传递给服务(连同控制器),从而自动保持同步?
谢谢。
当您将多个变量分配给同一对象时,每个变量都是对同一对象的引用。
以下为演示。根据用例,这可能不是首选方法
app.controller('MainCtrl', function($scope, MyService) {
$scope.mainModel = MyService.myObject;
})
app.controller('OtherCtrl', function($scope, MyService) {
$scope.otherModel = MyService.myObject;
})
app.factory('MyService', function() {
return {
myObject: {
name: 'test'
}
}
});
以下两个输入将显示相同的值
<div ng-controller="MainCtrl">
Name:<input ng-model="mainModel.name">
</div>
<div ng-controller="OtherCtrl">
Name:<input ng-model="otherModel.name">
</div>