2017-10-05 35 views
0

我有一个链接到不同的页面,不同的控制器,这样的状态:AngularJs - stateProvider重装控制器时,页面刷新

.state('productEdit', { 
       url: '/productEdit/:id', 
       templateUrl: '/App/Main/views/products/editProduct.cshtml', 
       controller: 'app.views.products.editProduct', 
       controllerAs: 'vm' 
      }) 

的问题是,当我去这个页面或刷新链接的页面,控制器不会再次初始化,因此即使清理缓存,变量也会“卡住”。

我使用的UI-S参考这样的:

  <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> 

任何人知道我怎样才能使每一个到达的页面时,控制器重装?

回答

1

我想你使用的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> 
+0

我尝试这样做,也重装:真正的选项。这些都不起作用。 – WilsonPena

+0

即使 尝试下接受 此方法适用于AngularJS V.1.2.2投票 : $ state.transitionTo($ state.current,$ stateParams,{ 重载:真的, 继承:假的, 通知:真 }); ?显然这是可能的,只有从控制器 – Ruslan

+0

我试过了,仍然没有工作。像这样:vm.lk = function(){ $ state.transitionTo('productEdit',{'id':1},{reload:true,inherit:false,notify:true}); }并用ng-click调用此函数 – WilsonPena