gpt4 book ai didi

javascript - AngularJs - 通过 ui-sref 传递参数时获取 undefined object

转载 作者:行者123 更新时间:2023-12-03 05:47:38 25 4
gpt4 key购买 nike

嗨,我对 AngularJS 很陌生,这是我的代码

html

<table ng-table="tctrl.tableEdit" class="table table-striped table-vmiddle" show-filter="true">
<tr ng-repeat="w in $data" ng-class="{ 'active': w.$edit }">
<td data-title="'Company name'" filter="{ 'cl_company_name': 'text' }" sortable="'cl_company_name'">
<a ui-sref="clients.client-detail({ clientId: w.cl_id })"><span ng-if="!w.$edit">{{ w.cl_company_name }}</span></a>
<div ng-if="w.$edit"><input class="form-control" type="text" ng-model="w.cl_company_name" /></div>
</td>
</tr>
</table>

Controller .js

.controller('TabsClientCtrl', function ($scope, $window, $stateParams) {

$scope.clID = $stateParams.clientId
alert($scope.clID)
})

状态.js

.state ('clients', {
url: '/clients',
templateUrl: 'views/common.html'
})

.state('clients.client-detail', {
url: '/client-detail',
templateUrl: 'views/client-detail.html',
resolve: {
...
}
})

当我点击 td 中的公司名称时,我收到未定义的警报。这是使用 ui-sref 传递参数的正确方法吗?

最佳答案

您的 route 有两处需要更改,

1) 在路由url中添加id参数

url: '/client-detail/:clientId',

需要此 :clientId 来告诉 ui-router 您正在通过路由发送一些参数。

2) 添加 Controller :

Controller :'TabsClientCtrl

当您在 Controller 中使用这些参数时,需要 Controller 。

.state ('clients', {
url: '/clients',
templateUrl: 'views/common.html'
})

.state('clients.client-detail', {
url: '/client-detail/:clientId',
templateUrl: 'views/client-detail.html',
controller: 'TabsClientCtrl,
resolve: {
...
}
})

关于javascript - AngularJs - 通过 ui-sref 传递参数时获取 undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com