您好我对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)
})
state.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传递参数的正确方法是什么?
答案 0 :(得分:1)
您的路线有两件事要改变,
1)将id参数添加到路径网址
url: '/client-detail/:clientId',
此:clientId
需要告诉ui-router
您通过该路线发送了一些参数。
2)添加控制器:
controller: 'TabsClientCtrl
当您在该控制器中使用这些参数时,需要控制器。
.state ('clients', {
url: '/clients',
templateUrl: 'views/common.html'
})
.state('clients.client-detail', {
url: '/client-detail/:clientId',
templateUrl: 'views/client-detail.html',
controller: 'TabsClientCtrl,
resolve: {
...
}
})
答案 1 :(得分:0)
请改变您的路线
.state('clients.client-detail', {
url: '/client-detail/?clientId',
templateUrl: 'views/client-detail.html',
resolve: {
...
}
})
或
.state('clients.client-detail', {
url: '/client-detail/:clientId',
templateUrl: 'views/client-detail.html',
resolve: {
...
}
})
根据您的要求