将Javascript对象(DataTable列)传递给Angular Directive

时间:2015-01-29 10:30:54

标签: javascript jquery angularjs datatable

我试图派生jquery数据表来创建我的自定义数据表并使列动态化。我无法将colums作为对象传递。我在指令控制器中得到一个字符串。

    var columns = 
        { 
            cols: [
            {
                "mDataProp": "Name",
                "render": function (data, type, full, meta) {
                    return '<a href="#/u/d/' + full.Id + '">' + full.Name + '</a>';
                }
            },
            { "mDataProp": "prop2" }


    };
    function getColumns() {
        return columns;
    }



<my-table 
          columns='columns'
          message="my message"></my-table>



app.directive('myTable', function () {
    return {
        restrict: 'E',
        templateUrl: '/TableView.html',
        replace: false,
        controller: function ($scope) {
            // $scope.urun = 
           // $scope.arg1 = attrs.headerText;
           //
        },
        scope: {
            columns: '=columns'
        },
        link: function (scope, element, attrs) {

            var columns = attrs.columns;
            console.log(columns);

        }
    }

1 个答案:

答案 0 :(得分:0)

您需要将变量列分配给控制器中的scope属性,然后:

app.directive('myTable', function () {
    return {
        restrict: 'E',
        templateUrl: '/TableView.html',
        replace: false,
        controller: function ($scope) {
            // $scope.urun = 
           // $scope.arg1 = attrs.headerText;
           //
        },
        scope: {
            columns: '='
        },
        link: function (scope, element, attrs) {

            var columns = $scope.columns;
            console.log(columns);

        }
    }

有关范围配置如何工作的更多信息:$compile