当用户点击来自电子邮件的链接时,我们有可以预订的功能。
目前,用户可以在网站上浏览并根据电子邮件地址查找,然后点击编辑以对预订进行更改,因此编辑功能就像仅限儿童的操作。
<button ng-if="!reservation.editing" test-id="reservations-reservation-edit-button" ng-click="edit(reservation)" class="btn btn-link change-link details-edit-reservation-link">Edit</button>
电子邮件链接将包含“RId”,“UserId”等参数......
问题是我们如何根据传递的参数直接调用编辑操作。 以下是当前$ state.go的片段
sp.state('reservations', {
url: '/reservations?e&getDetail&edit',
templateUrl: 'src/reservations/template.html',
data: {
backState: "back",
shortTitle: "Reservations"
}
我们可以对$ state进行任何更改,以便我们可以进行条件路由,然后调用编辑 和编辑功能功能片段看起来像这样
$scope.edit = function(reservation){
scrollToTop(true);
.....}
答案 0 :(得分:1)
据我了解您的问题,您可以使用$stateParams
你的控制器:
yourApp.controller("YourCtrl"), function($scope, $stateParams) {
var edit = $stateParams.edit;
var getDetail = $stateParams.getDetail;
var e = $stateParams.e;
$scope.edit = function (params) {
...
};
if(edit && e) { // have whatever condition you want for enabling editing
// run the function and pass the stateParams to the function
$scope.edit($stateParams);
}
});
请注意,$stateParams
将是json
,其中键是param名称,值是url中的param值。有关详细信息,请参阅官方docs。
希望这可以解决问题。