【发布时间】:2016-04-18 08:49:49
【问题描述】:
花了很多时间,几乎所有方法都试过了,但还是不行..
我有 Angular 指令女巫调用另一个 Angular 指令.. 我需要处理子指令中的事件。 所以我的孩子指令看起来像:
restrict: 'E',
replace: true,
scope: {
testResult: "=",
在父指令中我有:
<my-search-directive test-result="newTest"></my-search-directive>
为了处理 testResult 的变化,在父指令中我有这个手表:
$scope.$watch('newTest', function (newVal, oldVal) {
alert('test ' + newVal + ' ' + oldVal);
}, true);
它在开始时只触发一次,并且 newVal 和 oldVal 未定义.. 如果我有服务而不是“主”指令,它可以工作(我正在传递 parentScope 并将其用于监视)
在开始的 newTest 是返回复杂的对象和我的东西可能是问题,但它不是,因为它现在也可以使用简单的字符串。
尝试使用 watchcollection,但它也不起作用.. 我需要这种场景,使用指令的指令,我可以弄清楚它是如何工作的?
EDIT 1 :
myApp.directive('parentDirective', [
"$log", function ($log) {
return {
scope: {
getQueriesUrl: "=",
isFullyQualified: "=",
isMainTabs: "=",
model: "=",
crudUrls: "=",
callBackFunction: "&",
callback: "&",
newTestResult: "@"
},
restrict: 'A',
replace: true,
controller: function ($scope)
{
myActions.push('<div><my-search-directive test-result="newTestResult"></my-search-directive></div>');
}
这是我的“父指令”,所以我需要跟踪测试结果的变化。作为@Walfrat mantion,我添加了 newTestResult 变量,但仍然不起作用..
【问题讨论】:
-
我有解决方法..当然我可以使用 $rootScope 来跟踪更改..但这不是解决方案..
-
您是否找到了不使用
$rootScope的解决方案?
标签: javascript angularjs