【发布时间】:2015-08-31 06:45:11
【问题描述】:
所以我在指令的链接函数的范围内有以下观察者。我已经将此模式用于另一个变量,它可以工作,但是这个不能。有没有人有什么建议。代码如下
$scope.$watch('QOLFactory.surveysInView', function(newValue, oldValue, scope){
console.log(QOLFactory.surveysInView);
console.log(newValue, oldValue);
scope.surveys = newValue;
scope.surveyData = generateSurveyTotals(newValue);
});
第一个控制台日志打印 QOLFactory.surveysInView 的正确值,但第二个控制台日志打印未定义、未定义。是不是我做错了什么?
提前致谢。
【问题讨论】:
-
你能给我们一个提琴手吗?
-
我的猜测是您将
QOLFactory注入指令中,但您没有将其放在范围内?尝试:$scope.QOLFactory = QOLFactory;只是猜测,显示更多代码。为什么每个人都必须有一个该死的小提琴或plunkr!? :( -
如果surveysInView 是一个复杂对象,您可能需要向
$watch添加第三个true参数,以便它进行深入检查。在此处查看文档(搜索objectEquality):docs.angularjs.org/api/ng/type/$rootScope.Scope -
谢谢@SunilD。您的回答是正确的,我必须将 QOLFactory 分配给控制器中的 $scope 才能使指令正常运行