Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:ng如果加上ng include抛出类型错误:无法调用方法';插入前';空的_Angularjs_Ionic Framework - Fatal编程技术网

AngularJS:ng如果加上ng include抛出类型错误:无法调用方法';插入前';空的

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

我正在使用(v1.0.0-beta.11版)编写一个应用程序,但我相信这个问题与底层AngularJS(v1.2.17版)有很大关系

如果在同一元素中同时使用
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);