2016-06-29 75 views
0

我想要制作一个指令元素,它将接收一个json对象数组并创建一系列按钮。首先,我想我会尝试只用一个左键和一个右键。以下是我想要使用它访问指令模板里面的外部控制器功能

<div ng-controller="FormCtrl as form"> 
    <buttongroup 
     left-func="form.cancel()" left-text="Reject Call" 
     right-func="form.submit()" right-text="Accept Call"> 
    </buttongroup> 
</div> 

而且继承人的指令代码

.directive('buttongroup', function() { 
    return { 
     restrict: 'E', 

     scope: { 
     leftFunc: '@', 
     leftText: '@', 
     rightFunc: '@', 
     rightText: '@' 
     }, 

     template: '<button type="button" ng-click="{{leftFunc}}">{{leftText}}</button><button type="button" ng-click="{{rightFunc}}">{{rightText}}</button>', 
    }; 
}); 

这将创建正确的HTML,但ng-click不上的按钮工作。我假设这是因为他们在指令的模板范围内,无法访问FormCtrl函数form.submitform.cancel

我是全新角度,仍然试图弄清楚范围如何工作,所以任何帮助将不胜感激。

回答

0

您想调用该函数,因此您需要调用它。 您的模板中有语法错误。它必须是这样的:我 注意如何使用ng-click指令

template: '<button type="button" ng-click="leftFunc()">{{leftText}}</button><button type="button" ng-click="rightFunc()">{{rightText}}</button>' 
+0

这是最有答案的。另一个问题是,leftFunc和rightFunc需要是'&'而不是'@'。但是当我看到这个答案时,我很快就明白了这一点。谢谢! – werdna357