我正在使用ng-repeat使用jQuery和TB構建手風琴。出於某種原因,這在硬編碼時可以很好地工作,但在ng-repeat指令內部點擊時無法觸發。jQuery不適用於ng-repeat結果
我在想這個問題是從jQuery沒有綁定元素後加載事實。所以,我認爲不是在頁面加載時加載腳本,而是在返回數據時在.success上加載函數會更好。不幸的是,我無法弄清楚如何使這項工作。
測試頁:http://staging.converge.io/test-json
控制器:
function FetchCtrl($scope, $http, $templateCache) {
$scope.method = 'GET';
$scope.url = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=http://www.web.com&key=AIzaSyA5_ykqZChHFiUEc6ztklj9z8i6V6g3rdc';
$scope.key = 'AIzaSyA5_ykqZChHFiUEc6ztklj9z8i6V6g3rdc';
$scope.strategy = 'mobile';
$scope.fetch = function() {
$scope.code = null;
$scope.response = null;
$http({method: $scope.method, url: $scope.url + '&strategy=' + $scope.strategy, cache: $templateCache}).
success(function(data, status) {
$scope.status = status;
$scope.data = data;
}).
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
};
$scope.updateModel = function(method, url) {
$scope.method = method;
$scope.url = url;
};
}
HTML:
<div class="panel-group" id="testAcc">
<div class="panel panel-default" ng-repeat="ruleResult in data.formattedResults.ruleResults">
<div class="panel-heading" toggle-collapse>
<h4 class="panel-title">
<a data-toggle="collapse-next" href="">
{{ruleResult.localizedRuleName}}
</a>
</h4>
</div>
<div class="panel-collapse collapse">
<div class="panel-body">
<strong>Impact score</strong>: {{ruleResult.ruleImpact*10 | number:0 | orderBy:ruleImpact}}
</div>
</div>
</div>
</div>
jQuery的(工程NG重複之外)
$('.panel-heading').on('click', function() {
var $target = $(this).next('.panel-collapse');
if ($target.hasClass('collapse'))
{
$target.collapse('show');
}else{
$target.collapse('hide');
}
});
感謝您的幫助!
這是我一直在尋找的答案,雖然我是Angular的新手,但無法弄清楚如何將自定義指令添加到我的代碼中。從我讀過的所有內容看來,我似乎需要將所有內容都移動到一個模塊中,以便能夠像這樣添加指令?它是否正確?如果是的話,我是否需要改變控制器寫入的方式,因爲我發現它是在模塊的其他代碼中完成的?我真的很想學習在Angular中做到這一點的「正確」方式。再次,對於我在這裏缺乏經驗感到抱歉。謝謝。 –
只需聲明一個新文件'''''''''''''''''''''''''''''''!上面的代碼)' - 在'script'標記中包含'directives.js' – tymeJV
我試過了,但是當我分配了一個模塊名稱(ng-app =「moduleName」)時,我的控制器就中斷了。那是我問是否需要改變控制器才能完成這項工作。 –