【发布时间】:2015-07-12 00:36:24
【问题描述】:
我正在尝试在选择项目时发送一个事件,从指令到控制器使用$emit。我有两个用于组织的更新功能和另一个用于人员的更新功能。我的指令应该指定应该发出哪个事件。
这是我的更新函数
// 用于组织
$scope.updateOrgs = function(selectedVal) {
}
// 为人服务
$scope.updatepeople = function(selectedVal, type) {
}
如果是人,我的指令应该为 updatepeople () 引发一个发出事件,如果是 org,它应该引发 updateorg()。
我的指令看起来像...
.directive('search', function ($timeout) {
return {
restrict: 'AEC',
scope: {
model: '=',
searchobj: '@',
},
link: function (scope, elem, attrs, index) {
scope.handleSelection = function (selectedItem) {
scope.model = selectedItem;
scope.searchModel="";
scope.current = 0;
scope.selected = true;
$timeout(function () {
scope.onSelectupdate();
}, 200);
};
scope.Delete = function (index) {
scope.selectedIndex = index;
scope.delete({ index: index });
};
scope.Search = function (searchitem,event,searchobj) {
// alert('item entered'+name)
scope.searching = searchitem;
scope.searchobject = searchobj;
scope.onSearch({ searchitem: searchitem , searchobj:searchobj});
};
scope.current = 0;
scope.selected = true;
scope.isCurrent = function (index) {
return scope.current == index;
};
scope.setCurrent = function (index) {
scope.current = index;
};
},
controller: ['$scope','$element','$rootScope','SearchOrg', function($scope,$element,$rootScope,SearchOrg) {
$scope.searchItem = function(filter,searchobj){
//alert('search'+searchobj);
SearchOrg().fetch({'filter': filter, 'searchType': searchobj}).$promise.then(function(value){
$scope.searchData = value.data;
console.info($scope.searchData);
},
function(err) {
});
}
}],
templateUrl: TAPPLENT_CONFIG.HTML_ENDPOINT[0] + 'home/genericsearch.html'
}
});;
HTML sn-p
<search searchobj=“tei-org” selectedItems=“arrayofIds” search-id=”someidtoIdentify”/>
我怎样才能做到这两个功能在不同的控制器中,而且我需要使用$emit将参数从指令发送到控制器?
【问题讨论】:
-
组织和人员的这两种方法在哪里定义?
-
在不同的控制器中
标签: javascript angularjs javascript-events