我有一个我制作的angularjs指令。它有一个默认对象,如下所示:
module.constant('tableDefaults', {
hasHeader: true,
paging: {
autoPageSize: true,
count: undefined,
pageSize: undefined
}
});
该指令使用该常量并合并传入的选项,如:
module.directive('ngTable', function ($rootScope, tableDefaults) {
return {
restrict: 'AE',
transclude: true,
replace: true,
require: '^ngModel',
templateUrl: 'common/components/table/views/table.tpl.html',
controller: function(){
// freaks out if removed ...
},
link: function ($scope, $element, $attributes, ctrls) {
if(!$scope.tableOptions) $scope.tableOptions = {}
$scope.tableOptions = angular.copy(tableDefaults, $scope.tableOptions);
}
};
});
我传递的选项如下:
<div ng-table="{ paging: { count: 100 } }" />
问题现在在我的分页对象中,没有其他选项存在。我一直在关注angular.extend
vs $.extend
,并意识到我可能会使用$.extend
来完成此任务,但我正试图摆脱我的应用程序jquery。有什么建议吗?
答案 0 :(得分:1)
我尝试在此处重现您的问题,但我看到tableOptions
已正确设置为tableDefaults
。我不知道transclude
创建的额外范围是否可能成为问题(我在演示中将其删除),但我不知道如何。查看console.debug
:Fiddle