我有以下内容:
var s= '';
$scope.$watch('foos', function(newValue, oldValue) {
for(var i=0; i< newValue.length; i++){
var name= newValue[i].barName;
//console.log(name);
s += name;
s += "--";
}
});
console.log(s);
&#39; FOOS&#39;是来自Restangular电话,所以它是一个承诺,所以我不得不把它包装成$ watch。 我想设置&#39;,然后使用&#39; s&#39;在$ watch块之外,就像我有console.log()的地方一样。 现在的方式,&#39; s&#39;永远是空的,我怎么做到这一点,以便&#39; s&#39;在$ watch块中设置后使用?
答案 0 :(得分:0)
只有在准备就绪后才能使用s
,这是其中一种方法:
link: function($scope, $element, $attrs) {
var s= '';
$scope.$watch('foos', function(newValue, oldValue) {
for(var i=0; i< newValue.length; i++){
var name= newValue[i].barName;
//console.log(name);
s += name;
s += "--";
}
if(s.length > 0)
doStuffWithS($scope, $element, $compile, s);
});
}
function doStuffWithS($scope, $element, $compile, s) {
// it goes here...
$element[0].outerHTML("<div class='me'>" + s + "</div>";
$compile($element.contents())($scope);
}
我得到的错误是:TypeError:无法读取属性&#39; replaceChild&#39;为null