为什么暴露的api未定义?

时间:2017-06-23 08:57:48

标签: javascript angularjs gojs

我试图将我的一个指令的api暴露给另一个容器指令。 这是我的指示:

gfor(af::seq i, line.dims(0)) { classification(i) = lut(line(i)); }

在容器中我尝试设置绑定:

app.directive('palette', ['paletteNodesProvider', function (paletteNodesProvider) {

return {

    restrict: 'E',
    replace: true,
    templateUrl: 'assets/templates/palette.html',
    scope: {

        api: '='
    },
    link: function (scope, element, attrs) {

        var $ = go.GraphObject.make;
        var palette = $(go.Palette, 'nodesPalette', {

            nodeTemplateMap: paletteNodesProvider.getTemplateMap(),
            layout: $(go.GridLayout)
        });

        var nodeDataArray = paletteNodesProvider.getNodeData();
        var linkDataArray = [];

        palette.model = new go.GraphLinksModel(nodeDataArray, linkDataArray);

        scope.requestUpdate = function () {

            palette.requestUpdate();
        };

        scope.getTitle = function () {

            return 'My nodes';
        };

        scope.api = {

            getTitle: scope.getTitle,
            requestUpdate: scope.requestUpdate
        };
    },
    controller: ['$scope', function ($scope) {


    }]
};
}]); 

但在容器中,当我尝试控制日志$ scope.api,或通过ng-click调用$ scope.api.requestUpdate时,我总是得到$ scope.api未定义。 我正在使用Angular 1.6。 我不确定我做错了什么。

编辑:

这是容器指令的完整html:

<palette api="api"></palette>

EDIT2: 我想问题可能是两个指令都在创建一个孤立的范围?

0 个答案:

没有答案