2017-04-20 74 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我希望这能帮助你 –