角度来看,增加范围违反了我的指令

阿吉玛杰玛

我在使该指令正常工作方面遇到麻烦,在尝试添加范围以链接功能之前,它一直工作良好。这是我到目前为止的

指令(采用requirejs格式,因此使用模块/组件名称):

  angular.module(metadata.moduleName, [
        filterFieldControl.moduleName
    ]).directive(metadata.componentName,
        function(scope) {
            return {
                controller: filterFieldControl.componentName,
                restrict: 'C',
                replace: true,
                scope: {
                    filterFn: '='
                },
                template: builderResultFiltersHTML
            };
        }
    );

控制器

 angular.module(metadata.moduleName, []).controller(metadata.componentName, [
        '$scope',
        function($scope) {

            $scope.filterChange = function() {
                $scope.filterFn();
            };

        }
    ]);

模板:

  <div>
<ul>{{filter.name}}
    <li ng-repeat="value in filter.values">
        <input type="checkbox" ng-model="filterObject[filter.name][value]" ng-change="filterChange()">{{value}}
    </li>
</ul>

在哪里使用它(也许是重复出现的一些问题?)

   <div ng-repeat="result in searchResults.results" class="builder-search-result" filter-fn="filterClicked" ></div>

因此,如果我从指令中删除范围,它就可以正常工作。如果我添加它,控制台中没有错误,但没有出现提示。

如果我删除它,它可以工作:

scope: {
        filterFn: '='
        },

似乎无法找出原因。可以使用一些想法。

编辑:在这里添加了小提琴https://jsfiddle.net/vt1uasw7/31/-您会注意到,如果删除指令的作用域部分,一切都会很好。

迈克尔·本福德

当您scope: { ... }在指令中执行操作时,您是在告诉Angular创建一个单独的scope,这是一个原型上不会从任何其他范围继承的范围。

现在,看一下指令的模板:

<div>in
  <ul>{{filter.name}}
    <li ng-repeat="value in filter.values">
      <input type="checkbox" ng-change="filterChange()">{{value}}
    </li>
  </ul>
</div>

双方filterfilterChange()在控制器的范围定义,因为它有自己的私人范围的指令不能访问它们。

您可以通过执行以下两项操作之一来修复代码:

  1. 使用$parent.filter$parent.filterChange();
  2. filter添加filterChange到指令的隔离范围:

    scope: {
      filter: '=',
      filterChange: '&'
    }
    

我建议#2。是您更新的小提琴。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SSE指令违反了RAM理论带宽

来自分类Dev

从角度来看,如何测试我的指令中正在调用的作用域函数?

来自分类Dev

我违反了“开放/封闭”原则吗?

来自分类Dev

角度指令的范围继承

来自分类Dev

角度指令的范围继承

来自分类Dev

角度指令范围误解

来自分类Dev

Rails-从我的角度来看计算?

来自分类Dev

为什么我的角度范围不受此指令限制?

来自分类Dev

我违反了一些JavaScript规则吗?

来自分类Dev

if / else阻止按钮单击事件违反了我的愿望

来自分类Dev

我的示例是“引入状态”还是违反了REST / OData标准?

来自分类Dev

MySQL-使用IF EXISTS似乎违反了我的声明

来自分类Dev

更新违反了主键

来自分类Dev

测试角度指令范围法

来自分类Dev

角度指令隔离范围中的“ =?”

来自分类Dev

指令中的角度范围怪异

来自分类常见问题

拒绝加载脚本,因为它违反了以下“内容安全策略”指令

来自分类Dev

拒绝应用内联样式,因为它违反了以下内容安全策略指令

来自分类Dev

拒绝框架“”,因为它违反了以下“内容安全策略”指令

来自分类Dev

SignalR拒绝连接到[url],因为它违反了以下内容安全策略指令

来自分类Dev

为什么引用全局对象的局部变量似乎违反了功能范围?

来自分类Dev

为什么这违反了CSP?当明确允许“自我”时,blocked-uri =自我

来自分类Dev

我在角度指令之外是否正确共享状态?(父范围/ $ rootScope问题)

来自分类Dev

我是否在角度指令之外正确共享了状态?(父范围/ $ rootScope问题)

来自分类Dev

违反了哪些SOLID原则?

来自分类Dev

似乎违反了sed的贪婪

来自分类Dev

`final` 是否违反了 ODR?

来自分类Dev

角度不加载我的指令

来自分类Dev

角度指令不听外部范围的变化

Related 相关文章

  1. 1

    SSE指令违反了RAM理论带宽

  2. 2

    从角度来看,如何测试我的指令中正在调用的作用域函数?

  3. 3

    我违反了“开放/封闭”原则吗?

  4. 4

    角度指令的范围继承

  5. 5

    角度指令的范围继承

  6. 6

    角度指令范围误解

  7. 7

    Rails-从我的角度来看计算?

  8. 8

    为什么我的角度范围不受此指令限制?

  9. 9

    我违反了一些JavaScript规则吗?

  10. 10

    if / else阻止按钮单击事件违反了我的愿望

  11. 11

    我的示例是“引入状态”还是违反了REST / OData标准?

  12. 12

    MySQL-使用IF EXISTS似乎违反了我的声明

  13. 13

    更新违反了主键

  14. 14

    测试角度指令范围法

  15. 15

    角度指令隔离范围中的“ =?”

  16. 16

    指令中的角度范围怪异

  17. 17

    拒绝加载脚本,因为它违反了以下“内容安全策略”指令

  18. 18

    拒绝应用内联样式,因为它违反了以下内容安全策略指令

  19. 19

    拒绝框架“”,因为它违反了以下“内容安全策略”指令

  20. 20

    SignalR拒绝连接到[url],因为它违反了以下内容安全策略指令

  21. 21

    为什么引用全局对象的局部变量似乎违反了功能范围?

  22. 22

    为什么这违反了CSP?当明确允许“自我”时,blocked-uri =自我

  23. 23

    我在角度指令之外是否正确共享状态?(父范围/ $ rootScope问题)

  24. 24

    我是否在角度指令之外正确共享了状态?(父范围/ $ rootScope问题)

  25. 25

    违反了哪些SOLID原则?

  26. 26

    似乎违反了sed的贪婪

  27. 27

    `final` 是否违反了 ODR?

  28. 28

    角度不加载我的指令

  29. 29

    角度指令不听外部范围的变化

热门标签

归档