我尝试为select标签实现自定义指令:
App.directive('customeSelect', function() {
return {
restrict: 'E',
replace: true,
scope: {
label: '@',
//fdata: "&", //case on call: getUrgencyTypes() - this function from controller
gdata: "=", //case on call: getUrgencyTypes
bindedModel: "=ngModel",
eventHandler: '&ngChange'
},
template : '<div class="text-wrap" ng-mousedown="getData()">' +
'<select class="jcf-select" style="width: 100%;" ng-model="bindedModel" data-ng-change="eventHandler()" ng-options="a[\'val\'] as a[label] for a in select_data" >'+
'</select></div>',
controller: function($scope, $element, $attrs, $location) {
$scope.getData = function (first){
//get data from model
//if ($scope.select_data == undefined){
var kk = $scope.gdata;
$scope.select_data = kk(first);
//}
};
$scope.$watch('$viewContentLoaded', function() {
// $scope.showSelect = false;
// console.log("view loaded");
$scope.getData(true);
// jcf.replace($element.find("select"));
});
}
}
});
有些像我尝试使用它:
custome-select label="text" fdata="getUrgencyTypes()" ng-model="data.Urgency" data-ng-change="on_main_info_changed()" gdata="getUrgencyTypes"
但是加载页面时字段为空。如果我单击该字段,则在该字段中设置正确的值。如何在显示选择字段之前设置正确的值?
如果我使用&#34; gdata&#34; - 我可以将一个参数传递给控制器中的功能 - 但是如果我使用&#34; fdata&#34;那么选择中的数据不会在时间显示。 - 数据显示在时间,但我不能传递参数在控制器中起作用。 我需要一个参数,因为我不想在第一时间为select选择加载所有选项。