1
我想在一个指令中附加一个控制器作用域方法,但是当我点击指令按钮时,没有调用链接方法。请查看代码。有一个side-nav指令,我在其中使用select参数附加了方法。但是当按钮被点击时,方法不会被调用。方法绑定在Angular中不起作用
的index.html
<div class="container" layout="row" flex ng-controller="userController as vm" ng-init="vm.loadUsers()">
<md-sidenav md-is-locked-open="true" class="md-whiteframe-1dp">
<side-nav users="vm.users" select="vm.selectUser(user)"></side-nav>
</md-sidenav>
<md-content id="content" flex>
<user-detail selected="vm.selected" share="vm.share()"></user-detail>
</md-content>
</div>
userController.js
app.controller("userController", ['$scope', 'userService', '$mdBottomSheet', function ($scope, userService, $mdBottomSheet) {
var self=this;
self.users = [];
this.name = "manish";
self.loadUsers = function() {
userService
.loadAllUsers()
.then(function (users) {
self.users = users;
self.selected = users[0];
userService.selectedUser = self.selected;
});
}
self.selectUser = function (user) {
self.selected = user;
userService.selectedUser = self.selected;
}
}]);
directives.js
app.directive("sideNav", function() {
return {
restrict :'AE',
templateUrl: './views/sidenav.html',
scope : {
select : '&',
users : '='
}
}
});
./views/sidenav.html
<md-list>
<md-list-item ng-repeat="user in users">
<md-button ng-click="select({user:user)">
<md-icon md-svg-icon="{{user.avatar}}" class="avatar"></md-icon>
{{user.name}}
</md-button>
</md-list-item>
</md-list>
'选择({用户:用户)':无效代码。右大括号缺失。 –
在最后时刻错过了错字,但即使这样,它也无法正常工作。就在不久之前,我将selectUser的方法名称更改为其他名称,现在正在调用它。我不确定selectUser单词有什么问题。您可以通过在控制器和指令中放置selectUser来尝试使用它 –