我的视图中有一个按钮,我需要将我重定向到一个页面来编辑与之关联的元素。
这是按钮 - 非常直接。
<button type="button" class="btn btn-default" ng-click="edit(x.TemplateStepID)"><span class="glyphicon glyphicon-edit"></span></button>
这是我的角度控制器中的功能。
$scope.edit = function (e) {
TemplateService.editTemplateStep(e)
.success(function (data) {
})
.error(function (error) {
});
};
和app.factory中的函数:
TemplateService.editTemplateStep = function (stepID) {
alert(stepID);
return $http.get('@Url.Action("EditTemplateStep", "TemplateStep")', stepID);
}
现在我可以将数据一直传递给editTemplateStep函数。但我无法弄清楚如何获取传递给MVC控制器函数的信息(stepID),以便我可以重定向到与该按钮相关联的元素的编辑页面。
Angular和MVC的新手。任何帮助将不胜感激。
答案 0 :(得分:0)
保存$scope.edit
的参数并在调用reDirect函数时使用它:
$scope.reDirect(stepId, data) {
//do the redirect
};
$scope.edit = function (e) {
var stepId = e;
TemplateService.editTemplateStep(e)
.success(function (data) {
//Call the redirect function
$scope.reDirect(stepId, data);
})
.error(function (error) {
});
};
更新:弃用通知
.success
服务的.error
和$http
方法已被弃用。而是使用.then
和.catch
方法。
$scope.edit = function (e) {
var stepId = e;
TemplateService.editTemplateStep(e)
.then (function (result) {
//Call the redirect function
$scope.reDirect(stepId, result.data);
})
.catch (function (error) {
//log error
});
};
请注意.then
以不同于.success
方法的方式返回数据。
有关.success
弃用的详细信息,请参阅AngularJS $http service API Reference。