如何使用更新的$scope重新加载角度控制器
How to reload an angular controller with the updated $scope?
我的问题是我需要将"det"值应用于控制器并重新加载它。不管怎样,别介意,先继续读,这样你就会理解我的问题了。
我下面有这个控制器。在第一次加载时,xxx将不存在于对象中,然后det值将为null。因此,预计控制器的服务将出现一个错误,告知找不到它(参见下面的控制器代码)
然而,当我点击页面上的一个按钮(按钮html代码不在这里,我认为没有必要)时,它会填充对象,我希望重新加载控制器,这样我就会看到预期的输出。
下面的HTML是加载控制器的人,我期望的是data ng model="{{$parent.$root.ParentItems['xxx'].xxx}}"将更新控制器中的xxx值。事实上,这是因为我正在使用"<span>{$parent.$root.ParentItems['xxx'].detnumber}}</span>"来测试它。
现在,再一次,我的问题是,我需要将"det"值应用于控制器并重新加载它。我想的是创建一个新的控制器,但我只会重复代码。
//html
<div data-ng-switch-when="thisIsIt" ControllerOne data-ng-model="{{$parent.$root.ParentItems['xxx'].xxx}}"></div>
<span>{{$parent.$root.ParentItems['xxx'].xxx}}</span>
//属性控制器一
controller: function ($scope, $element, $http) {
function par() {
var xxx= null;
xxx = $scope.$parent.$root.ParentItems['xxx'].xxx;
var det = { xxx: xxx};
return det;
}
$http.post('/api/values/entries/GoHere', par()).success(function (salData) {
var buildSHGraph = function (shData) {
//code code codes...
}
$scope.Array1 = [];
angular.forEach(salData, function (evt) {
//Code Code Codes
});
buildSHGraph($scope.Array1);
});
}
我认为你可以使用$rootScope并将你的值传递给它。然后你的应用程序可以全局访问该值。
当您的值从ajax下载时,scope.html将被更新。
当您用"var xxx"定义变量时,不能在该函数的范围之外访问它,在您的情况下是"par"。
function par() {
this.xxx = null;
this.xxx = $scope.$parent.$root.ParentItems['xxx'].xxx;
}
当您尝试从异步任务(如$http.post)的回调更改视图时,您需要"$digest"或"$apply"作用域
//Do this in success callback function in your ajax request
$timeout(function() { //$timeout must be setup as dependency in constructor such as $scope and $http
$scope.$digest();
});
相关文章:
- 单击angularjs中的另一个控制器时重新加载控制器
- 使用控制器作为语法和 ngRoute 分别加载控制器
- 如何在打开模型时动态加载控制器文件
- RequireJS with Angularjs 用于在同一页面上加载控制器
- 在不重新加载控制器的情况下更新路由
- 茉莉花/棱角.js $scope在加载控制器上未定义
- 引导选项卡上的 MVC 单击重新加载控制器并刷新
- ng-view - 模板页面中的加载控制器
- 角度 ui 路由器可选查询参数加载控制器两次
- 角度 ui 路由器未加载控制器或模板
- AngularJS 1.2.0:延迟加载控制器和模板
- AngularJS 返回加载控制器的泛型函数
- EmberJS:基于另一个属性重新加载控制器模型的最佳方法
- AngularJS从文件夹加载控制器
- ui sref opts={reload:true}不重新加载控制器
- CI-使用Javascript按钮加载控制器
- 在angularjs$routeProvider中动态加载控制器
- 在ionic中重新加载控制器
- Angular JS-点击加载控制器功能
- 可以在Angular中动态加载控制器