【发布时间】:2023-03-19 05:59:01
【问题描述】:
*请注意:有一个 Plunker 链接: https://plnkr.co/edit/PAINmQUHSjgPTkXoYAxf?p=preview
起初我想在指令点击事件上传递一个对象作为参数, (这对我来说太复杂了),所以我决定通过分别发送事件和对象来简化它。
在我的程序中,视图控制器中的对象始终未定义,视图本身与 Plunker 示例相反。
在 Plunker 示例中,仅在第一个传递事件(第二个指令点击事件工作正常)时在控制器上未定义。
- 我不知道为什么我在简单的 Plunker 模拟和我的大量代码中得到 2 个不同的结果,我希望这两种情况都是同一个逻辑问题的 2 个不同结果。
- 同样欢迎通过事件函数将对象作为参数从指令传递的解决方案。
HTML
<pick-er get-obj-d="getObj()" obj-d="obj"></pick-er>
视图控制器
function mainController($scope)
{
$scope.test = "work";
$scope.getObj = function(){
$scope.test = $scope.obj;
}
}
指令:
function PickerDirective()
{
return {
restrict: 'E',
scope: // isolated scope
{
obj : '=objD',
getObj: '&getObjD'
},
controller: DirectiveController,
template:`<div ng-repeat="item in many">
<button ng-click="sendObj()">
Click on me to send Object {{item.num}}
</button>
</div>`
};
function DirectiveController($scope, $element)
{
$scope.many =[{"num":1,}];
$scope.sendObj = function() {
$scope.obj = {"a":1,"b":2, "c":3};
$scope.getObj();
}
}
}
【问题讨论】:
标签: angularjs angularjs-directive