具有动态数据加载的自定义选择指令

时间:2014-12-15 14:12:43

标签: angularjs angularjs-directive

我尝试为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选择加载所有选项。

0 个答案:

没有答案