gpt4 book ai didi

javascript - 从子元素访问范围指令

转载 作者:行者123 更新时间:2023-12-03 11:12:09 25 4
gpt4 key购买 nike

我试图从子元素访问指令范围,触发测试函数,但它不起作用。

HTML

<div my-directive>

<div ng-click="triggerFromDirective('hello')">Click me</div>

</div>

指令

.directive('myDirective', function() {

return {
scope: {},
controller: function($scope) {

// This function doesn't fire when click on the
// element
$scope.triggerFromDirective = function(msg) {
alert(msg);
}
}
}
});

是否可以通过这种方式触发指令上的函数?如果不是,您如何实现这一目标?

最佳答案

我相信,正如 New Dev 所说,范围正在混淆。指令 div 内的代码不会自动添加到指令中。我不能 100% 确定您的目标是什么,但通常会使用模板将 HTML 添加到指令中。该模板将有权访问指令范围。

您还可以查看ngTransclude .

请参阅此处的示例 http://jsfiddle.net/8Lbrsw35/ 。这是代码:

<body>
<div ng-app="app">
<div my-directive></div>
</div>
</body>

JS

app.directive('myDirective', function(){
return {
restrict: 'AE',
scope: {},
template: '<div ng-click="triggerFromDirective(\'hello\')">Click me</div>',
controller: function($scope){
$scope.triggerFromDirective = function(msg) {
alert(msg);
};
}
};

});

关于javascript - 从子元素访问范围指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com