本文介绍了如何在-js指令中定义一个函数,对大家解决问题有一定的参考价值。有需要的朋友,和小编一起学习吧!
问题描述
我创建了一个指令来使用引导程序的下拉元素选择用户。见下文。
app.directive('usersDropdown', function(ConfigService,$http) {返回 {templateUrl: 'app/views/users_dropdown.html',链接:函数($scope,元素,属性){});};});
.html
我需要创建一个函数,当单击列表中的用户时应该调用该函数。我的问题是如何在指令本身中定义这个函数?我把它写在控制器里。但问题是我有几个控制器。在所有控制器中编写相同的函数并不是一个好习惯。如果我可以编写一个对所有控制器都通用的函数,那就太好了,那就是指令内部。如果你有好的解决方案,请告诉我。
修改
我修改了我的指令的js如下
app.directive('usersDropdown', function(ConfigService,$http) {返回 {templateUrl: 'app/views/users_dropdown.html',链接:函数($scope,元素,属性){$scope.getUserDetails = function(user_id){控制台日志(用户 ID);}}};});
为此,我在控制台中将结果显示为 {{.}}。不是那个值。但是当我检查时,该函数正在传递预期值。
那为什么期望值没有进入函数呢?
已解决
我通过更改指令 html 模板解决了这个问题。我删除了 ‘ 和 {{ 如下所示。
ng-click="getUserDetails(userList.SessionId)"
解决方案
链接函数是一个js函数,你可以在其中做任何事情
app.directive('usersDropdown', function(ConfigService,$http) {返回 {范围 : {},templateUrl: 'app/views/users_dropdown.html',链接:函数($scope,元素,属性){$scope.somefunction = function(a) {//做一些事情}}};});
如果您不希望从指令外部访问此函数,您还应该使用隔离范围来执行此操作。
对于使用 ‘s drop-down 的用户。作为。
app.directive('usersDropdown', function(ConfigService,$http) {
return {
templateUrl: 'app/views/users_dropdown.html',
link: function($scope, element, attrs) {
});
};
});
.html
我需要一个 ,它在列表中的用户上。我是怎么到这个的?我把它写在 .但我就是。全部都写一样的不好。如果我能写出 for all ,那就是js函数中定义函数js函数中定义函数,它会很好。如果你有好的,请告诉我。
我是我的 js
app.directive('usersDropdown', function(ConfigService,$http) {
return {
templateUrl: 'app/views/users_dropdown.html',
link: function($scope, element, attrs) {
$scope.getUserDetails = function(user_id){
console.log(user_id);
}
}
};
});
为此,我在 {{.}} 中。不是那个价值。但是当我是价值。
那为什么值不是那个呢?
我的问题是我的 html 。我 ‘ 和 {{ 从它作为 .
ng-click="getUserDetails(userList.SessionId)"
解决方案
链接是一个js,你可以做
app.directive('usersDropdown', function(ConfigService,$http) {
return {
scope : {},
templateUrl: 'app/views/users_dropdown.html',
link: function($scope, element, attrs) {
$scope.somefunction = function(a) {
// Do some stuff
}
}
};
});
如果您希望这不是来自 .
,您也可以使用范围 to
关于如何在 -js 指令中定义函数的文章到此结束。希望我们推荐的答案对大家有所帮助,也希望大家支持IT之家!
暂无评论内容