2015-12-28 210 views
1

在開發一個應用程序時,我需要在創建資源之後將當前用戶重定向到不同的狀態。Ui路由器,ng-repeat和UI狀態

其實,我有一個需求清單,我需要根據需求顯示或創建一個報價單。

這裏的視圖代碼:

<div class="landing-diags"> 
    <div class="current-projects"> 
    <div class="row project-summary" ng-repeat="demand in landingdiag.demandsList"> 
     <div class="col-md-2 project-block first-block {{project.projectType}}"> 
     <p class="project-strong">{{demand.user.firstname}} {{demand.user.lastname}}</p> 
     </div> 
     <div class="col-md-2 project-block"> 
     <p class="project-strong">{{demand.creationDate | date:"dd/MM/yyyy"}}</p> 
     </div> 
     <div class="col-md-4"> 
     </div> 
     <div class="col-md-2"> 
     <div ng-if="!demand.quotation"> 
      <button ng-click="landingdiag.createQuotation(demand)" class="btn btn-primary pull-right bar-btn">Create</button> 
     </div> 
     <div ng-if="demand.quotation"> 
      <button ui-sref="app.state.concerned({id: demand._id})" class="btn btn-primary pull-right bar-btn">Show</button> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

而這裏的控制方法暗示:

createQuotation (demand) { 
    this.DemandsService.createQuotation(demand).$promise.then((response) => { 
     this.redirectToQuote(demand); 
    }); 
    } 

redirectToQuote (demand) { 
    this.$state.transitionTo('app.state.concerned', {id: demand._id}); 
} 

問題

我的問題是,在創建報價時,我米從來沒有重定向。如果我使用console來記錄redirectToQuote方法,我會通過它。所以,我的問題似乎是在$ state.go調用。

然而,當我試圖直接使用我查看裏面的redirectToQuote方法上的「顯示」重定向按鈕類似以下內容:

<div ng-if="demand.quotation"> 
    <button ng-click="landingdiag.redirectToQuote(demand)" class="btn btn-primary pull-right bar-btn">Accéder au devis</button> 
</div> 

我米井重定向到有關國家

+0

如果你使用'state.go'代替'state.transitionTo'是一樣的嗎? – koox00

+0

在你承諾然後()函數你指向你的諾言對象不是與控制器this.redirectToQuote(需求)。 – Sharko

回答

1

我關注createQuotation()內的this.redirectToQuotethen()作爲回調調用。所以this的對象肯定是而不是是你的控制器。

看看來自todd的第一個代碼片段:https://toddmotto.com/resolve-promises-in-angular-routes/ 他正在使用綁定。

你也可以看看https://github.com/getify/You-Dont-Know-JS/tree/master/this%20%26%20object%20prototypes從真棒凱爾·辛普森 或更短從自己:http://blog.monkey-development.com/javascript/java/2015/12/18/javascript-this.html

+0

帶ES6的箭頭功能鏈接「this」上下文 –

+0

ok thx。沒有意識到 – ChrisY

+0

你能爲你的問題創造一個蹲點嗎? – ChrisY