Angular JS工厂和变量访问
Angular JS factory and variable access
我最近从更改了我的工厂
app.factory('controllerComm', function($rootScope)
{
var showVforum = {};
showVforum.result = false;
showVforum.prepBroadcast = function(val)
{
this.result = val;
this.broadcastVal();
}
showVforum.broadcastVal = function()
{
$rootScope.$broadcast('toggleVforum')
}
return showVforum;
});
至本
app.factory('controllerComm', ['$rootScope', function($rootScope)
{
var showVforum = {};
showVforum.result = false;
showVforum.prepBroadcast = function(val)
{
this.result = val;
this.broadcastVal();
}
showVforum.broadcastVal = function()
{
$rootScope.$broadcast('toggleVforum')
}
return showVforum;
}]);
我这样做是出于JS缩小的原因。在我更改它之前,我在我的一个控制器中使用了这个:
$scope.$on('toggleVforum', function()
{
$scope.isVisible = controllerComm.result;
$('#vforum').verticalAlign();
player.play();
});
由于我更换了工厂,controllerComm.result
现在正在返回undefined
,我不知道为什么。有什么想法吗?
编辑
错误:
TypeError: Object function e(e,f,i){var j=c.defer(),k=j.promise,l=y(i)&&!i,f=a.defer(function(){try{j.resolve(e())}catch(a){j.reject(a),d(a)}l||b.$apply()},f),i=function(){delete g[k.$$timeoutId]};
k.$$timeoutId=f;g[f]=j;k.then(i,i);return k} has no method 'prepBroadcast'
at Object.$scope.hideVforum (http://localhost/aventos/resources/js/aventos.js:645:20)
at http://localhost/aventos/resources/js/angular.min.js:72:251
at http://localhost/aventos/resources/js/angular.min.js:144:140
at Object.e.$eval (http://localhost/aventos/resources/js/angular.min.js:88:347)
at Object.e.$apply (http://localhost/aventos/resources/js/angular.min.js:88:454)
at HTMLButtonElement.<anonymous> (http://localhost/aventos/resources/js/angular.min.js:144:122)
at HTMLButtonElement.x.event.dispatch (http://localhost/aventos/resources/js/jquery-1.10.2.min.js:5:14129)
at HTMLButtonElement.v.handle (http://localhost/aventos/resources/js/jquery-1.10.2.min.js:5:10866)
尝试将结果变量与广播一起传递。
$rootScope.$broadcast('toggleVForum',{result: this.result});
controllerCommand未在侦听器上的$中定义,即使您可能正在将其注入定义侦听器的控制器中。
$scope.$on('toggleVForum',function(evt,args){
$scope.isVisible = args.result;
...
});
相关文章:
- 如何从字符串变量访问对象属性
- 无法使用变量访问数据 JSON
- D3:使用变量访问绑定数组中的对象
- JavaScript 变量访问错误
- CanvasJS-访问变量-访问属性toString的权限被拒绝
- 如何使用javascript数据对象?如何通过变量访问条目
- 如何使用变量访问对象属性
- 使用变量访问对象的属性
- 如何使用包含对象键名的变量访问对象属性
- 为什么通过缓存变量访问 DOM 更快
- 将 PHP 变量访问到外部 JavaScript 文件中
- 使用变量访问 Javascript 中的对象信息
- 使用变量访问 JSON 属性(字符串)
- 如何在 yii 中从 javascript 变量访问文本字段输入
- 如何使用 javascript 变量访问模型属性
- 根据 HighCharts 对象的变量访问数组的元素
- 使用动态变量访问 Meteor 中另一个变量的值
- 如何通过绑定的控制器变量访问服务的属性
- Angular JS工厂和变量访问
- 使用变量访问对象的值