Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs-页面刷新时重新加载控制器的状态提供程序_Javascript_Asp.net_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript AngularJs-页面刷新时重新加载控制器的状态提供程序

Javascript AngularJs-页面刷新时重新加载控制器的状态提供程序,javascript,asp.net,angularjs,angular-ui-router,Javascript,Asp.net,Angularjs,Angular Ui Router,我有一个链接到不同页面和不同控制器的状态,如下所示: .state('productEdit', { url: '/productEdit/:id', templateUrl: '/App/Main/views/products/editProduct.cshtml', controller: 'app.views.products.editProduct', cont

我有一个链接到不同页面和不同控制器的状态,如下所示:

.state('productEdit', {
                url: '/productEdit/:id',
                templateUrl: '/App/Main/views/products/editProduct.cshtml',
                controller: 'app.views.products.editProduct',
                controllerAs: 'vm'
            })
          <div ng-repeat="product in vm.products" class="col-lg-4 col-md-4 col-sm-4 col-xs-4" >
                <a ui-sref="productEdit({id: product.id})">
                    <div style="padding:5px">
                        <div class="card-product">
                            <h4>
                                {{product.name}}
                            </h4>
                            <p>
                                {{product.description}}
                            </p>
                        </div>

                    </div>
                </a>
             </div>
问题是,当我转到此页面或刷新链接页面时,控制器不会再次初始化,因此即使在我清理缓存时,变量也会“卡住”

我使用的ui sref如下所示:

.state('productEdit', {
                url: '/productEdit/:id',
                templateUrl: '/App/Main/views/products/editProduct.cshtml',
                controller: 'app.views.products.editProduct',
                controllerAs: 'vm'
            })
          <div ng-repeat="product in vm.products" class="col-lg-4 col-md-4 col-sm-4 col-xs-4" >
                <a ui-sref="productEdit({id: product.id})">
                    <div style="padding:5px">
                        <div class="card-product">
                            <h4>
                                {{product.name}}
                            </h4>
                            <p>
                                {{product.description}}
                            </p>
                        </div>

                    </div>
                </a>
             </div>

{{product.name}

{{product.description}}


有人知道我如何在每次到达页面时重新加载控制器吗?

我假设您使用ui路由器,根据文档,您可以将可选配置传递给ui sref,在您的情况下,应该类似于

<a ui-sref="productEdit({id: product.id})"  ui-sref-opts="{reload: true}">
                    <div style="padding:5px">
                        <div class="card-product">
                            <h4>
                                {{product.name}}
                            </h4>
                            <p>
                                {{product.description}}
                            </p>
                        </div>

                    </div>
                </a>

{{product.name}

{{product.description}}


我尝试了这个,还尝试了重新加载:true选项。所有这些都不起作用。即使尝试了否决票也被接受此解决方案在AngularJS V.1.2.2中有效:$state.transitiono($state.current,$stateParams,{reload:true,inherit:false,notify:true})?很明显,这只有从控制员那里才有可能。我试过了,但仍然没有成功。像这样:vm.lk=function(){$state.transitiono('productEdit',{'id':1},{reload:true,inherit:false,notify:true});}并使用ng clickTry调用此函数添加状态定义缓存:false我想我解决了这个问题,控制器无法加载依赖项,但由于某种原因,没有显示错误。谢谢你的帮助!