花了好几个小时,几乎尝试了一切,但它不起作用..
我有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未定义。 如果我有服务而不是&#39; master&#39;它有效的指令(我通过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>');
}
这是我的父母指令&#39; ,所以我需要跟踪测试结果的变化。作为@Walfrat mantion,我添加了newTestResult变量,但仍然不起作用..
答案 0 :(得分:0)
首先,你不要在指令中使用指令。
你在这里使用带双向绑定的指令。
由于您的范围与数据绑定,因此您应该testResult
块中定义的scope{}
。如果$ watch不工作,请尝试使用watchCollection,你应该没问题。