监视指令范围属性不能按预期工作

时间:2014-05-05 20:39:37

标签: angularjs angularjs-directive angularjs-scope

我写了一个自己的角度指令的问题,它将promise作为参数。这个" promise-parameter"可以在开头未定义并观察,因此应该在watch函数中看到更改为它。

我有两个不同版本的指令(" loader")。

第一个有效: http://jsfiddle.net/rkw43/23/

第二个不是: http://jsfiddle.net/rkw43/25/

            $scope.watch('promise', function(newValue, oldValue) {
                console.log("New Value: ");
                console.log(newValue); // NEW VALUE equals "promise" and not the query.promise from parent scope, why?

如第二版的评论中所述," newVal"在loader-direactive的watch函数中总是等于" promise",但它应该是来自父作用域的新的promise-object。

为什么这不起作用?这有什么不对?我想弄清楚几个小时......

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 你的第二个小提琴中有一个拼写错误
  2. $scope.watch('promise', function(newValue, oldValue) {

    应该是

    $scope.$watch('promise', function(newValue, oldValue) {

    1. 在您的控制器中,您附加了延迟对象而不是承诺。所以要么:
    2. 点击处理程序中的

      $scope.query = deferred.promise

      $scope.promise.promise函数中的

      execute