不确定发生了什么,但由于某种原因,当我在输入字段中输入内容时,$ watch不会触发handleChange函数。
HTML:
<div data-suggestion-search data-search="search_string">
<input data-ng-model="search_string"/>
</div>
JS:
var suggestionSearch = function ($parse){
return {
restrict: "A",
transclude: true,
scope: {
search: '=search'
},
templateUrl: 'views/search.html',
link:function(scope, lElement, attrs){
scope.$watch("search", handleChange, true);
function handleChange(data){
console.log("search", scope.search);
}
}
}
}
模板:
<div class="findus-search-container" ng-transclude>
</div>
答案 0 :(得分:1)
我不太熟悉w / transclusion如何处理范围,但我相信它为指令创建了一个新的范围,并为转换的内容创建了一个单独的范围,因此通过将相同的值绑定到两个转换元素和翻译内容。
这是一个工作plnkr,它保持一个单独的范围变量同步w / search_string,名为search_string_binder,可以用来绑定到你的指令
虽然这可能不是最有说服力的解决方案,但它应该让你超越阻碍你的事情,直到有更多的翻译知识的人可以看看这个。