角度 JS 脚本未更新视图
Angular JS script not updating view
假设这是相当简单的修复,并且我完全错过了。
我基本上有一个按钮,当用户单击它时,它将使用 ui-router 进入新状态。状态更改后,脚本中的值将立即导致简单段落标记的空值填充我在脚本$scope中设置的值。
这是行不通的,请参阅以下示例:
脚本
app.controller('myCtrl', ['$scope', 'Auth', '$state', '$timeout',
function($scope, Auth, $state, $timeout) {
$scope.buttonClick = function () {
$state.go('newState');
$timeout(function () {
$scope.newValue = 'Hello';
}, 1000);
};
}]);
.HTML
<p>{{newValue}}</p>
现在,我已经尝试了各种组合,并注意到通过获取行"$scope.newValue = 'Hello';"并将其放在按钮单击功能之外将使其正常工作。然而,我正在创建一个应用程序,其中将有进一步的按钮单击事件,每个事件将相同的值更改为适用于按钮单击事件的特定值。
当您
$state.go('newState')
导航到另一个视图时,从而在尝试设置$scope.newValue = 'Hello';
时丢失当前$scope
您需要在"newSate-controller
"中为要导航到的视图设置$scope.newValue = 'Hello';
。
app.controller('myCtrl', ['$scope', 'Auth', '$state', '$timeout',
function($scope, Auth, $state, $timeout) {
$scope.newValue = '';
$scope.buttonClick = function () {
$timeout(function () {
$scope.newValue = 'Hello';
}, 1000);
};
}]);
这应该有效
问题出在 $state.go('newState');它重定向到另一个状态并重新加载页面。如果它的状态相同,它也可能发生
首先在外面初始化它
app.controller('myCtrl', ['$scope', 'Auth', '$state', '$stateParams', '$timeout',
function($scope, Auth, $state, $timeout) {
if( $stateParams.newVal != null ){
$scope.newValue = $stateParams.newVal;
}
$scope.buttonClick = function () {
$state.go('newState', { newVal : 'Hello'});
};
}]);
在您的状态定义中使用"参数"参数
.state('newState', {
.......
.......
params : { newVal: null },
.......
.......
})
相关文章:
- $routeParams在传递到新视图时未定义&控制器
- ajax.beginform() 不更新部分视图 MVC
- 角度指令没有更新模型视图
- 如何在渲染新视图之前关闭所有事件
- 从Backbone中的另一个视图调用新视图
- Angular数组更改时更新HTML视图
- 更新淘汰视图模型属性时激发更改事件
- Angular2 在创建 ngSwitch 新视图后调用自定义函数
- Knockout.js-更新父视图模型中的数组,在第二个视图模型中使用值
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- 单击按钮时更新角度视图模型
- 当现有 Google 标记移动到另一个位置时,如何更新新的纬度和经度
- 如何在 DIV 中更新新图像
- 使用 AJAX 更新的模型更新 AngularJS 视图
- 主干新视图反映旧模型数据
- 如何在单击按钮时动态更新部分视图
- 更新主干视图
- 挖空 - 添加了可观察的不更新新对象
- 使用 ajax 从 php 文件中获取随机数不会更新新结果
- 创建新视图时调用呈现函数