2017-05-01 37 views
0

我使用的WebPack有棱有角,我有一个HTML文件NG-包括:差异的行为用NG-包括本地与生产

<ng-include src="stringUrl" ng-if="true"></ng-include> 

在控制器我设置stringUrl:

this.$scope.stringUrl = 'app/some-view.html'; 

用“的WebPack-dev的服务器”在本地运行时,该工作正常,但使用的WebPack的main.bundle.js文件不包含某些-view.html建设时。

所以,我试图控制器更改为:建筑用的WebPack时

this.$scope.stringUrl = require('app/some-view.html'); 

所以,现在,一些-view.html里面main.bundle.js。但是scope.stringUrl获取HTML内容并且ng-include失败(因为它期待一个url)。

如果我删除NG-包括,而是只是把:

<div>{{stringUrl}}</div> 

它将在生产工作,但不会在本地工作,因为stringUrl不会有HTML的内容。

任何想法如何解决这个问题?

在此先感谢

以色列

回答

0

我找到了一种方法开发&生产与ng-include标签配合使用,$ templateCache。

首先需要注入$templateCache$templateCache: ng.ITemplateCacheService),所以我们可以在控制器/指令中使用它。

然后在$templateCache把(使用require)文件内容:

this.$scope.stringUrl = $templateCache.put("some-view.html", require("app/some-view.html")); 

在视图文件,标签ng-include应参照键(与'封装URL):

<ng-include src="'some-view.html'"></ng-include> 

现在一切按预期工作。