我的Rails应用程序与其个人资料页面具有不同的组织,并具有自己的库存统计信息表。
以下是 app / views / organization / show.html.erb
的一部分<div ng-app="cc-app" class="card-body overflow-hidden">
//codes here
<inventory-stats orgid="<%= @organization.id %>"> </inventory-stats>
//codes here
</div>
我已经制定了一个指令来显示库存统计数据并传递orgid即组织ID与范围隔离(单向绑定)以获取组织的库存统计信息。据我所知,我有两种方法可以在 app / assets / javascripts / angular / directives / inventoryStats.directive.js 中定义单向绑定的范围对象,它们是:
无论
scope: {
orgid: '@'
}
或者,
scope: {
orgid: '<'
}
但只有@似乎有效。使用@,$ scope.orgid在指令范围内给出组织ID的值。如果我通过&lt;它未定义。我看过JEXL syntax但仍然不知道为什么&lt;不管用。
My AngularJS: AngularJS v1.6.10
答案 0 :(得分:3)
angular.module('app', [])
.directive('myDirective', function() {
return {
scope: {
param1: '@',
param2: '<'
},
template: '<div><pre>param1= {{param1|json}}</pre><pre>param2= {{param2|json}}</pre></div>'
};
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.10/angular.js"></script>
<div ng-app="app" ng-init="scopeValue=[1,2,3]">
<my-directive param1="string-value" param2="scopeValue"></my-directive>
</div>
@
仅用于将插值作为字符串值传递。
<
是从父级到子级的数据绑定方式,您可以使用它传递所需的数据值。