[英]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.