我有js对象:
var Test = function () {
var x;
var y;
this.start = function() {
//some action
if ( x > y) {
x = x* 10; // now update angular $scope.x
}
};
this.end = function() {
//other action
};
function anotherAction() {
};
};
我有一个角度控制器
testModule.controller('TestCtrl', function ($scope, $location) {
var test = new Test();
//$scope.x = value from test
}
我想将角度控制器与Test
实体绑定。例如。我想抓住,当test.end()
被调用并获得返回值或将值从test.end()
传递给angular时。有可能吗?
更新
x和y可以在test.start()方法中更新,我想在更新x或y后将新值(x或y)传递给角度控制器。 (听x或y的更改,如角度听模型)
如何以角度捕捉事件?
抱歉新手问题。
答案 0 :(得分:0)
使测试成为公开x / y字段的工厂或服务:
var Test = function() {
var values = {
x: 0,
y: 0
};
return {
values: values,
start: function () {
values.x++;
values.y++;
},
end: function () { }
}
}
angular.service('Test', Test);
现在在您的范围内,您可以说:
angular.controller('TestController', ['$scope', 'TestSvc', function(
$scope, testSvc) {
$scope.test = testSvc.values;
});
您的应用中使用TestSvc的任何地方都可以通过TestSvc.values访问x / y的更新值
(编辑:忘记了控制器中的.values引用) (编辑2:更改了测试功能的主体,因为它原来不能正常运行)