AngularJS:ng如果加上ng include抛出类型错误:无法调用方法';插入前';空的
我正在使用(v1.0.0-beta.11版)编写一个应用程序,但我相信这个问题与底层AngularJS(v1.2.17版)有很大关系 如果在同一元素中同时使用AngularJS:ng如果加上ng include抛出类型错误:无法调用方法';插入前';空的,angularjs,ionic-framework,Angularjs,Ionic Framework,我正在使用(v1.0.0-beta.11版)编写一个应用程序,但我相信这个问题与底层AngularJS(v1.2.17版)有很大关系 如果在同一元素中同时使用ng和ng include,我会遇到问题。当ng if的条件在模型中发生变化时,我得到以下错误(在Chrome和Android中测试): 我在一个基于Ionic starter项目的简单项目中隔离了这个问题(Ionic start[PATH]选项卡)。代码如下: 我深入研究了错误,发现抛出错误的函数是after:function(elem
ng和ng include
,我会遇到问题。当ng if
的条件在模型中发生变化时,我得到以下错误(在Chrome和Android中测试):
我在一个基于Ionic starter项目的简单项目中隔离了这个问题(Ionic start[PATH]选项卡
)。代码如下:
我深入研究了错误,发现抛出错误的函数是after:function(element,newElement){…
打印出传递给函数的参数时,element
是一个内容为
的[object Comment]
,newElement
是一个[[object htmldevelment]]
我了解到,从Angular 1.2.2开始,指令ng if
和ng include
可以组合使用
是否有人遇到过此问题?是否有任何已知的修复方法(除了将ng if
移动到父元素)
提前感谢,,
Rafa.两个ng if
和ng include
都排队执行,并且ng if
具有更高的优先级,因此它首先运行。如果表达式为false,则ng if
删除元素,但不会取消运行ng include
。由于元素已删除,ng include
为u如果无法将加载的内容注入元素,则会出现此错误
可以考虑在<代码> NG中包含表达式:< <代码>,如果删除“代码> NG。如果表达式返回空字符串,<代码> NG包含< /代码>将不会尝试加载任何东西。
分叉plunkr并在2秒后加载内容:
标记
<ng-include src="source"></ng-include>
仅作为记录,如果条件是模型中的另一个变量,“
工作正常。还要注意的是,即使当ng include
条件为false时未附加div
元素,任何关联的控制器(使用ng controller
)将被调用。实际上会调用控制器,但如果将ng controller
与有条件的ng include
一起使用,则控制器将仅运行一次:
<ng-include src="source"></ng-include>
// In the controller, check
$timeout(function () {
$scope.source = 'templates/Nocontent.html';
}, 2000);