Angularjs $scope更新在由非角度js对象操作时未反映视图
我想通过从另一个js文件发出$scope的方法来反映$scope的数据。但它不能 我的来源是这样的 另一个.js home_controller.js 我想操作$scope.items并反映到我的视图中。Angularjs $scope更新在由非角度js对象操作时未反映视图,angularjs,Angularjs,我想通过从另一个js文件发出$scope的方法来反映$scope的数据。但它不能 我的来源是这样的 另一个.js home_controller.js 我想操作$scope.items并反映到我的视图中。 你知道吗?提前感谢。您可以从角度处理循环外部调用范围更改。因此,更新不会自动拾取 您可以通知angular使用$apply函数更改范围,这将解决您的问题。 但是,当从angular和外部脚本调用时,应该使用不同的函数 function HomeCtrl($scope,$routeParams,
你知道吗?提前感谢。您可以从角度处理循环外部调用范围更改。因此,更新不会自动拾取 您可以通知angular使用$apply函数更改范围,这将解决您的问题。 但是,当从angular和外部脚本调用时,应该使用不同的函数
function HomeCtrl($scope,$routeParams,...){
$scope.items = [];
//this can be called from within angular
$scope.renderOn(idx){
// fooo is called.
console.log("called fooo");
// changed $scope.items but $scope.items doesn't reflect view.
$scope.items.append("foo");
}
//this is to be called externally
var renderOnExternal = function(idx){
$scope.$apply(function() {
$scope.items.append("foo");
});
//or even: $scope.$apply(function(){ $scope.renderOn(idx);});
}
}
尝试在
$scope.$apply()
中包装对append
的调用。谢谢!你帮我节省了很多时间。
function HomeCtrl($scope,$routeParams,...){
$scope.items = [];
$scope.renderOn(idx){
// fooo is called.
console.log("called fooo");
// changed $scope.items but $scope.items doesn't reflect view.
$scope.items.append("foo");
}
}
function HomeCtrl($scope,$routeParams,...){
$scope.items = [];
//this can be called from within angular
$scope.renderOn(idx){
// fooo is called.
console.log("called fooo");
// changed $scope.items but $scope.items doesn't reflect view.
$scope.items.append("foo");
}
//this is to be called externally
var renderOnExternal = function(idx){
$scope.$apply(function() {
$scope.items.append("foo");
});
//or even: $scope.$apply(function(){ $scope.renderOn(idx);});
}
}