我试图将我的一个指令的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: 我想问题可能是两个指令都在创建一个孤立的范围?