首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >隔离作用域和绑定的问题

隔离作用域和绑定的问题
EN

Stack Overflow用户
提问于 2017-02-02 12:14:46
回答 1查看 49关注 0票数 0

我尝试构建一个指令,在这个指令中,我想通过单击元素来更改模型。某种复选框。以下是我的代码

代码语言:javascript
运行
复制
mainApp.directive('subCategory', function(){
    return{
        restrict: 'A',
        scope: {
            model: '=?ngModel'
        },
        link : function(scope, element){

            scope.model = true;
            element.click(function () {

            if (element.hasClass('active')) {
                element.removeClass('active');
                scope.model = false;
            } else {
                element.addClass('active');
                scope.model = true;
            }

         });
        }
    } 
});

然后,我尝试通过查看包含所有复选框的ng- $watch属性的对象,在父控制器中对这组复选框进行分组。

代码语言:javascript
运行
复制
mainApp.controller('Filter',['$scope', function ($scope) {
$scope.data = {}

$scope.$watchCollection('data', function(newNames, oldNames) {
  console.log('changed');
});

}]);

当我用scope.model = true;定义属性时,它可以工作,看着它工作,但当我在单击时更改scope.model时,出于某些原因,它不会影响data对象,看起来也不能工作。有人能告诉我为什么吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-02-06 01:14:57

在您的指令更改中

代码语言:javascript
运行
复制
 scope: {
        model: '=?ngModel'
    },

代码语言:javascript
运行
复制
  scope: {
        model: '=ngModel'
    },

如上所述,当您将ngModel传递给链接函数时,即当您声明

代码语言:javascript
运行
复制
 require:'?ngModel'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41994084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档