2017-04-20 73 views
0

我有一個角度查看誰擁有添加和編輯的行動,比如:得到UI路由器狀態的參數

<div class="col-md-12"> 
    <div class="col-md-2"> 
    <button id="agregar" type="submit" class="btn blue btn-lg" ng-click="nuevo();">Add</button> 
    </div> 
    <div class="col-md-2"> 
    <button id="editar" type="submit" class="btn blue btn-lg" ng-click="editar();">Edit</button> 
    </div> 
    <div class="col-md-2"> 
    <button id="eliminar" type="submit" class="btn blue btn-lg" ng-click="eliminar();">Delete</button> 
    </div> 
</div> 

的動作控制器是:

function nuevo() { 
    $state.go("root.detalleregistros", { tipo: "nuevo" }); 
} 

function editar() { 
    $state.go("root.detalleregistros", { tipo: "edicion"}); 
} 

正如你可以看到我重定向到同樣的看法root.detallregistros,並需要獲得'tipo'值。所以我可以執行相應的功能。

function insertar() {   
    apiService.post("../../api/Catalogo/AddCatalogoRegistro/" + selected.ID, 
     function(res) { 
      // my code 
     }); 
} 

,如果它來與類型:edicion執行其他操作

+0

檢查UI路由器stateParams – yBrodsky

+0

我把它上傳@yBrodsky – Gerardo

+0

不,這不是我的意思。你需要使用$ stateParams,https://github.com/angular-ui/ui-router/wiki/URL-Routing#url-parameters – yBrodsky

回答

0

您可以在服務中使用的關聯數組是這樣的:

var apiUrlMap = { 
 
    new: "newApiPath", 
 
    edit: "editApiPath", 
 
    delete: "deleteApiPath", 
 
};

,然後前該服務調用可以根據視圖參數提取正確的api url路徑,即var apiUrl = apiUrlMap[tipo]; a然後建立你的完整的API網址。

希望這可以幫助你

+0

你引用我的狀態的服務?你能幫我嗎?我真的是新的角度我把我的.state發佈到我的問題 – Gerardo

+0

與服務我的意思是用於執行後端調用的框架組件。 Buf也許你應該更清楚地說明問題的目的是什麼,因爲我的解決方案並不能保證視圖參數的傳遞,也許我不會主題 –

0

您可以用$ stateParams.tipo揭露它的價值,不要忘了在你的控制器注入$ stateParams服務。祝你好運

app.controller('Ctrl', function($scope, $stateParams) { 
    if($stateParams.tipo === 'nuevo') { 
     // your corresponding code 
    } 
    else if($stateParams.tipo === 'edicion') { 
     // your corresponding code 
    } 
    else if($stateParams.tipo === 'eliminar') { 
     // your corresponding code 
    } 
    else { 
     console.log("unexpected tipo value"); 
    } 
}) 
+0

@Gerardo我希望這能幫助你 –