AngularJS - 指令在控制器中更改值时出现问题

时间:2013-11-15 00:34:37

标签: angularjs angularjs-directive angularjs-scope

我从主控制器的API中获取大图像。

我有一个指令,可以在加载每个图像时成功通知我:

app.directive('imageonload', function() {
    return {
        controller: "mainController",
        restrict: 'A',
        link: function(scope, element, attrs) {
            element.bind('load', function() {   
                alert("loaded");
            });
        }
    };
});

我用简单的

创建了一个加载屏幕
$scope.loading = true;

在我的主控制器中。

如果我在指令中将加载设置为false(替换警报),它似乎只会影响子范围而不会影响父(根据Batarang扩展名)。

我包括:

scope: {
        loading: '@'
},

在我的指令中,但它仍然没有删除加载屏幕。

这是我的HTML:

<div class="images" imageonload loading="loading">

我做错了什么?谢谢。

1 个答案:

答案 0 :(得分:0)

@设置单向数据绑定。因此,如果父母改变了孩子也做了,但不是相反。

使用=将为您提供双向绑定。因此,当您的指令更改loading时,更改将反映在父作用域上。

因此你想:

scope: {
   loading: '='
},