模板在动态添加到页面后不会被编译

时间:2016-02-09 07:24:27

标签: php html angularjs

编辑:我发现了真正的问题,我正在努力寻找解决方案。问题基本上是我的角度无法检测在点击事件之后加载的控制器中的依赖性。所以我的控制器功能不会被执行。

我最近试图深入探讨angularJS。因此我创建了一些内置在不同页面上的应用程序。现在我试着把它们放在一个页面上。由于我有这些多个应用程序,我必须手动引导它们。即使认为一切正常,我也希望将整个页面整合到一个应用程序中。这就是问题发生的关键所在。 我的页面上有三个不同的应用程序:前两个与页面一起直接加载。但是第三个通过添加带有on-click-event的div来动态加载。该事件还会加载特定的脚本,如控制器和服务。由于某种原因,加载的模板未编译,原始角度表达式显示在页面上。

编辑: 这是我的php-programm中的一部分,其中应用程序本身的脚本被添加到页面中:

$jScripts = 
'<script type="text/javascript" src="' . WEBURI . '/js/select/core/core.js"></script>'."\n".
'<script type="text/javascript" src="' . WEBURI . '/js/select/core/services/configFactory.js"></script>';

core.js脚本定义了angular.module及其依赖项。

在php Viewscript中添加了特定的spricts,它通过启动click事件来调用:

echo '
<script type="text/javascript" src="' . WEBURI . '/js/select/core/services/organisationCiFactory.js"></script>
<script type="text/javascript" src="' . WEBURI . '/js/select/organisationCiSelect/controllers/selectController.js"></script>
';

控制器如下所示:

angular
    .module('cidb.core')
    .controller('cidb.core.organisationCiSelectCtrl',
        [
            '$scope',
            'cidb.core.Config',
            'cidb.core.OrganisationCi',
            SelectCtrl
        ]
    );

我的php Viewscript中的部分:

<div ng-cloak="ng-cloak">
<div ng-controller="cidb.core.organisationCiSelectCtrl" >
    //My-Template
<div>
</div>

1 个答案:

答案 0 :(得分:0)

您不应该延迟在angularJS中加载脚本,将其直接链接到index.html

在制作中,您可能希望将源代码缩小为单个js文件