我是angularjs的新手。目前我正在研究自定义指令。 在我的multiselect程序中,我在三个地方使用了typeahead。但我当时正在考虑将整个事物转换成一个指令并在我的程序中使用它。
这是我的HTML代码:
<div class="multitext-wrap blue-border">
<ul inputfocus>
<li class="tag" ng-repeat="list in selectedOrgs">
<span class="tag-label">{{list.displayConfig[0].propertyValue}}</span><span class="tag-cross pointer" ng-click="removeOrg($index);">x</span>
</li>
<li class="">
<input type="text" class="typeahead" ng-model="data.selectedOrg" typeahead-on-select="updateOrgs(data.selectedOrg); data.selectedOrg=''" typeahead="org as org.searchList for org in orgList | filter:$viewValue | limitTo:8" class="form-control" ng-keyup="getOrgs(data.selectedOrg, $event)">
</li>
</ul>
</div>
函数调用的Js代码:
$scope.updateOrgs = function(selectedVal) {
var continueFlag = true;
for(var i=0;i<$scope.selectedOrgs.length;i++){
if($scope.selectedOrgs[i].id == selectedVal.id)
continueFlag = false;
}
if(continueFlag) {
var data = {
orgId:selectedVal.id,
baseObjectTemplateId:$routeParams.groupId
};
MapOrgs().save(data).$promise.then(
function(val){
console.log(val);
$scope.selectedOrgs.push(selectedVal);
},
function(err){
});
}
}
$scope.getOrgs = function(data, event) {
if(event.keyCode != 13){
//$scope.Participants(data);
$scope.organisationSearch(data);
}
}
$scope.organisationSearch = function(filter){
SearchOrg().fetch({'filter':filter, 'searchType':'tei_org'}).$promise.then(
function(value){
$scope.orgList = value.data;
},
function(err){
});
// console.log('orglist'+JSON.stringify($scope.orgList));
}
}],
templateUrl : TAPPLENT_CONFIG.HTML_ENDPOINT[0]+'home/question-partials/orgs.html'
};
}])
我试图将其转换为指令,但它们无法正常工作,我不知道为什么。所以请帮助摆脱这个问题。