我制定了一个指令,在我的视图中显示脚本标记:
angular.module 'app'
.directive 'kwankoScript', ->
restrict: 'E'
replace: true
template: '<script type="text/javascript">
window.ptag_params = {
zone: "transaction",
transactionId: "id",
currency: "EUR",
customerId: "' + scope.user.uuid + '",
siteType: "d"
};
</script>'
我从我的观点dashboard-validate.html
中调用此指令,如此:
<kwanko-script></kwanko-script>
我可以从视图中访问{{transaction.uuid}}
,但我不能从我的指令中访问。
我想将transactionId: "id"
替换为
`transactionId:“{{transaction.uuid}}”但它不起作用。
任何帮助将不胜感激。
更新:
这是我的指示:
angular.module 'paycarApp'
.directive 'kwankoScript', ->
restrict: 'E'
replace: true
scope:
transaction-id: "="
template: '<script type="text/javascript">
window.ptag_params = {
zone: "transaction",
transactionId: {{ transaction-id }},
currency: "EUR",
customerId: "' + scope.user.uuid + '",
siteType: "d"
};
</script>'
和我的观点:
<kwanko-script transaction-id="{{transaction.uuid}}"></kwanko-script>
如果我不放大括号,则不执行指令
这是输出
<script type="text/javascript" transaction-id="" class="ng-scope">
window.ptag_params = {
zone: "transaction",
transactionId: {{ transaction-id }},
currency: "EUR",
customerId: "7514c32b-0aec-1b00-a52d-e676ff62e297",
siteType: "d" };
</script>
答案 0 :(得分:0)
您必须将范围数据从控制器传递到指令范围。理想情况下,控制器和指令的范围不是孤立的,因此我们只需要绑定它们 在视图中&gt;将控制器范围uuid传递给指令,如下所示
<kwanko-script tid = "transaction.uuid"></kwanko-script>
在JS代码&gt;我们需要让指令知道如何使用控制器范围数据
app.directive 'kwankoScript', ->
restrict: 'E'
replace: true
scope: {
tid : '='
}
template: '<script type="text/javascript">
window.ptag_params = {
zone: "transaction",
transactionId: {{tid}},
currency: "EUR",
customerId: "' + scope.user.uuid + '",
siteType: "d"
};
</script>'