2017-10-05 148 views
0

我正在为Umbraco 7中的内容选取器实现一个控制器,在那里我需要更改起始节点以匹配特定的内容节点。但文我加载了内容选择器的页面我收到一个错误说:

“无法读取的未定义的属性‘配置’”

关于这段代码:

$scope.model.config.StartNodeId = 1083; 
    if ($scope.model.config.StartNodeId) { 
      options.startNodeId = $scope.model.config.StartNodeId; 
    } 

我的整个控制器:

angular.module("umbraco").controller("UIOMatic.FieldEditors.Pickers.ContentController", 
    function ($scope, $routeParams, $http, dialogService, entityResource, iconHelper) { 

     function init() { 
      if (!$scope.setting) { 
       $scope.setting = {}; 
      } 

      var val = parseInt($scope.property.value); 

      if (!isNaN(val) && angular.isNumber(val) && val > 0) { 
       $scope.showQuery = false; 

       entityResource.getById(val, "Document").then(function (item) { 
        item.icon = iconHelper.convertFromLegacyIcon(item.icon); 
        $scope.node = item; 
       }); 
      } 

      $scope.openContentPicker = function() { 
       var d = dialogService.treePicker({ 

        section: "content", 
        treeAlias: "content", 
        multiPicker: false, 
        callback: populate 
       }); 
      }; 

      $scope.model.config.StartNodeId = 1083; 
      if ($scope.model.config.StartNodeId) { 
       options.startNodeId = $scope.model.config.StartNodeId; 
      } 

      $scope.clear = function() { 
       $scope.id = undefined; 
       $scope.node = undefined; 
       $scope.property.value = undefined; 
      }; 

      function populate(item) { 
       $scope.clear(); 
       item.icon = iconHelper.convertFromLegacyIcon(item.icon); 
       $scope.node = item; 
       $scope.id = item.id; 
       $scope.property.value = item.id; 
      } 
     }; 

     if ($scope.valuesLoaded) { 
      init(); 
     } else { 
      var unsubscribe = $scope.$on('valuesLoaded', function() { 
       init(); 
       unsubscribe(); 
      }); 
     } 
    }); 

我试图改变的开始节点ID为1083,这就是我想要的,我可以打开内容选择器,但它不会允许我保存更改。它也允许多选,我在配置对象中设置为false。

这是笔者内容选择器中的文件: http://uiomatic.readthedocs.io/en/stable/02.DefaultEditorViews/#content-picker

回答

2

我觉得它的对象分配值之前,您应该初始化$ scope.model。 使用

$scope.model = {} 
+0

谢谢,我设法解决它! – Leth