簡體   English   中英

僅在angularjs手風琴打開時如何調用函數

[英]How to call a function when angularjs accordion open only

嗨,我正在使用angularjs ui bootstrap手風琴。 當用戶單擊手風琴時,我想在此調用一個功能並獲取用戶

這是代碼,請提前幫助我

 $scope.load_userdata= function(user_id) { console.log(user_id); } 
 <uib-accordion close-others="oneAtATime"> <div uib-accordion-group class="panel-default" ng-repeat="user in users"> <uib-accordion-heading ng-click="load_userdata(user.id)"> <div class="table"> <div style="width: 50%"> @{{user.name}} </div> <div> Load user data </div> </div> </uib-accordion-heading> </div> </uib-accordion> 

數據並顯示

我真的不明白問題是什么。 我在下面的代碼段中復制了您的模板,並添加了帶有工作示例的簡單控制器。

不包含angular-bootstrap模塊,因此您無法獲得正確的渲染。 但是它向您展示了如何在控制器中定義函數以使模板起作用。

 function ctrl($scope) { // dummy users data for the snippet purpose $scope.users = [{ name: 'Joe', id: '1', data : 'Married to Jane', }, { name: 'John', id: '2', data : 'Has 3 children', }, { name: 'Jack', id: '3', data : 'Owns a boat', }, { name: 'Bob', id: '4', data : 'Speaks swedish', } ]; $scope.load_userdata = function(user_id) { console.log("Loading user#%s data", user_id); // looking for the right user : let user = $scope.users.find(x => x.id === user_id); // and toggling the dataLoaded property in the user object user.dataLoaded = true; } } 
 <!DOCTYPE html> <html ng-app> <head> <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.min.js"></script> <meta charset=utf-8 /> <title>Angular JS Demo</title> </head> <body ng-controller="ctrl"> <uib-accordion close-others="oneAtATime"> <div uib-accordion-group class="panel-default" ng-repeat="user in users"> <uib-accordion-heading ng-click="load_userdata(user.id)"> <div class="table"> <div style="width: 50%"> @{{user.name}} </div> <div> Load user data </div> </div> </uib-accordion-heading> <div ng-show="user.dataLoaded"> User's details : {{user.data}} </div> </div> </uib-accordion> </body> </html> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM