将对象传递给指令不允许全局变量
Passing object to directive does not allow global variables
我将一个变量传递给我的指令,col
指令中col: '='
定义的变量。该对象包含一些数组,在这些数组中有一个函数。该函数引用我的控制器中的一个变量,它看起来像这样:
function (params) {
return $scope.function(params);
}
这个col
变量被传递给 big 指令包含的子指令,子指令执行它。
它从一个名为 VM{随机数} 的文件中抛出一个错误,其中它说$scope
未定义。
如何让它从我的控制器运行,而不是从虚拟 JS 文件运行?
如果需要传递功能,则必须为作业创建服务/工厂。我认为要在指令或组件中使用。
不要忘记服务是单例的,工厂实施标准工厂模式。
如果全局意味着窗口变量或函数不需要注入这个.windows。做这项工作。
问候。
在为
控制器
声明的 HTML 模板中调用指令只需将数据从指令传递到控制器
中使用的函数以便您可以在控制器的同一呈现模板上访问指令数据
命令
.directive('myDir', function () {
return {
'restrict': 'AE',
'templateUrl': '/directive_page.html',
'scope': {
'col': '=',
'onSelect': '='
}
}
'link': function () {
// use onselect method here to use values
}
}
控制器
.controller('myController', function () {
$scope.setValueFromDirective = function (value) {
// write your logic to fetch data
};
});
.HTML
<div data-my-dir="" col="//pass value you want in directive" data-on-select='setValueFromDirective(value)'>
</div>
我希望这对你有帮助
相关文章:
- JavaScript指令不能像我想象的那样工作
- Don'不允许将焦点集中在自动完成的选择上
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- js文件未加载js控制台say's”;不允许加载本地资源”;
- Jquery不允许来自多个选择列表的相同值
- 飞行前响应中的访问控制允许标头不允许Angularjs请求标头字段访问控制允许标题
- 不允许在文本框中使用小数
- TinyMCE全屏不允许出现模式窗口
- 不允许在字段中输入不需要的字符
- 访问控制允许标头不允许X-Requested-Wise
- Chromium内联样式不允许正确的视图
- JQuery代码语法问题?(“不允许内联控制结构”)
- 正则表达式,不允许在javascript中使用负数和小数以及零
- 不允许输入或聚焦的输入类型文本
- $interval不允许我更新前端
- 新的自定义角度指令不起作用
- 不允许使用引导清单'组件'指令
- XMLHttpRequest无法加载url Origin访问控制允许Origin不允许null
- 将对象传递给指令不允许全局变量
- ngRepeat、JSON、angularJS-不允许重复-通过指令中的模板