gpt4 book ai didi

angularjs - 每次解析状态

转载 作者:行者123 更新时间:2023-12-02 04:56:14 24 4
gpt4 key购买 nike

所以我正在努力思考 0.2.0 中的路由器是如何工作的。我设置了我的状态,当您访问 url 时,我的状态已解析。我很难确定最好的做法是在每次转换到该状态时加载我的数据。

路由器

$stateProvider
.state('admin.levels',{
url: '/levels',
templateUrl: 'views/admin/levels/index.html',
resolve: {
levelData: function($q,Levels){
var deferred = $q.defer();
Levels.query(function(levels) {
console.log('resolving state');
deferred.resolve(levels);
});

return deferred.promise;
}
},
controller: 'AdminLevelsController'
})
.state('admin.levels.create',{
url: '/create',
templateUrl: 'views/admin/levels/create.html',
controller: 'AdminLevelsController'
})

Controller

'use strict';

angular.module('mean.levels').controller('AdminLevelsController', ['$scope', '$state','$stateParams', '$location', 'Global', 'Levels','levelData', function ($scope, $state, $stateParams, $location, Global, Levels, levelData) {

$scope.new = function(){
var level = new Levels({
title: this.title,
content: this.content
});

level.$save(function(response){
$state.go('admin.levels');
});
};
}]);

我可能离题很远,我对 Angular 还很陌生,只是想全神贯注于此。这个想法是您到达“索引” View 并且有一个级别列表。您点击一个链接来创建一个,提交调用 new() 的表单,然后转换回 admin.levels 状态。我希望 resolve 会再次被调用,但它似乎只被调用一次。我猜这与已经实例化的 Controller 有关,因此不需要再次实例化。

我认为监听状态变化可能是一种选择,但它似乎有点笨拙,我想确保这是我在朝那个方向前进之前应该走的方向。

谢谢。

最佳答案

好吧,我走错了路。这question终于让我指出了正确的方向。我知道 Controller 没有再次被实例化,但我没有意识到这意味着范围仍然存在并且可以使用。我最终所做的只是在创建新级别时将其推送到我的数组中:

level.$save(function(response){
$scope.levels.push(response);
$state.go('^');
});

之后,我返回到我的列表所在的父状态,就像变魔术一样,新项目就在那里。事后看来,这是完全有道理的,我只是无法全神贯注。

关于angularjs - 每次解析状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com