具有不同控件的多个 ngIncludes 可见
Multiple ngIncludes with Different controls visible
我有一段 HTML 有自己的控制器。我想将该代码段包含在两个不同的位置。
如果显示为#parent1 的子项,我想隐藏一些字段。如果显示为 #parent2 的一部分,我希望隐藏其他字段。
我以前做过,但当#parent1 和#parent2 可以同时可见时就没做过。
想法?
您现在可能应该停止使用 ng-include 并改为编写一个非常简单的指令。这是具有隔离范围的 angular 指令的典型用例,只需传入 scope-variable 并在模板中使用 ngShow ngHide 或 ngIf:
.directive('snippy', ['$rootScope',
function ($rootScope) {
return {
restrict: 'E',
scope: {
showit: '='
},
templateUrl: 'yoursnippet.html',
link: function(scope, elem, attrs) {
// here goes your controller code
}
}
然后在 yoursnippet.html:
<div>
<div ng-show="showit">this is shown/hidden</div>
</div>
然后在你的 parent:
<div>
<snippy showit="anyangularexpression">
<snippy showit="anyangularexpression2">
</div>
我有一段 HTML 有自己的控制器。我想将该代码段包含在两个不同的位置。
如果显示为#parent1 的子项,我想隐藏一些字段。如果显示为 #parent2 的一部分,我希望隐藏其他字段。
我以前做过,但当#parent1 和#parent2 可以同时可见时就没做过。
想法?
您现在可能应该停止使用 ng-include 并改为编写一个非常简单的指令。这是具有隔离范围的 angular 指令的典型用例,只需传入 scope-variable 并在模板中使用 ngShow ngHide 或 ngIf:
.directive('snippy', ['$rootScope',
function ($rootScope) {
return {
restrict: 'E',
scope: {
showit: '='
},
templateUrl: 'yoursnippet.html',
link: function(scope, elem, attrs) {
// here goes your controller code
}
}
然后在 yoursnippet.html:
<div>
<div ng-show="showit">this is shown/hidden</div>
</div>
然后在你的 parent:
<div>
<snippy showit="anyangularexpression">
<snippy showit="anyangularexpression2">
</div>