我正在處理迷你聯繫人列表,我試圖實現拖放效果。現在我有一個控制器,可以從數據庫中獲取數據,看起來像這樣。指令內的角度呼叫控制器功能
Index.controller('cIndex', function($scope, $http) {
$scope.init = function() {
$http.get('php/contacts.php').success(function(data) {
$scope.jsonContactsList = data;
$scope.jsonContactsDetail = [];
});
};
$scope.init();
$scope.listdetail = function(index) {
alert(index);
};
});
此控制器在屏幕上添加一個聯繫人列表。我想要做到這一點,當我從列表中拖出一個項目並將其放到列表之外時,該項目從列表中消失並顯示爲關於該特定聯繫人的詳細div。
現在我有2個指令,1個使拖動效果和1個使拖放效果,他們看起來像這樣。
Index.directive('contactListDrag', function() {
return {
restrict: 'A',
link: function(scope, elem, attr) {
var options = scope.$eval(attr.contactListDrag);
elem.draggable(options);
}
};
});
Index.directive('contactListDrop', function() {
return {
restrict: 'A',
link: function(scope, elem, attr) {
elem.droppable({accept: '.contact-list-item'});
elem.bind('drop', function(event, ui) {
var id = parseInt($(ui.draggable).attr('id'), 10);
$scope.listdetail(id);
});
}
};
});
現在控制器我有一個名爲listdetail功能,我打算讓它改變jsonContactsList成jsonContactsDetail內一條線,但爲了做到這一點裏面,我需要從控制器調用listdetail功能,在可拖拽的contactListDrop指令內。
先謝謝你了,丹尼爾!
你有什麼問題? – Chandermani
$ scope.listdetail(id);在第二個指令內部,不會觸發$ scope.listdetail = function(index){alert(index); }; 來自控制器 –