问题标签 [ng-html2js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1627 浏览

angularjs - 使用 ng-include 和 $templateCache 找不到文件

我有一个指令,我试图根据注入指令的对象动态加载不同的部分

我正在使用grunt-html2js将所有要添加的 html 文件转换为$templateCache. 我已经验证了 html 文件已添加到 中$templateCache,但是当我加载页面时,很难仅找到函数.html中引用的文件template

这是任何时间问题吗?有没有更好的方法来使用模板功能?

0 投票
1 回答
386 浏览

angularjs - 为什么在使用 ng-html2js 预处理我的 AngularJS 模板时出现 Lexer 错误

我正在尝试使用 Karma 为 AngularJS 指令编写单元测试。为了能够在测试中使用指令模板,我使用了karma-ng-html2js-preprocessor

对于以下模板 HTML,我在单元测试中收到 Lexer 错误消息,但在实际系统中一切正常。

错误信息:

错误:[$parse:lexerr] Lexer Error: Unexpected next character at column 17-17 [] in expression [{width: vm.width,\n' + ' height: vm.height,\n' + ' \'margin -left\': vm.x,\n' + '\'margin-top\': vm.y}]。

这是预处理器中的错误还是我的表达有问题?

0 投票
0 回答
633 浏览

angularjs - 使用 ng-html2js-preprocessor 为角度单元测试添加相对模板路径

我有一个带有模板网址的角度指令。我正在尝试用业力测试指令。因此,使用 ng-html2js-preprocessor 获取指令的 html。

我的项目文件夹结构是

这里 myproject 是我的项目文件夹。所以 var/www 在其他一些环境中可能会有所不同。

在directive.js中我有:

现在在我写的 karma.config.js 文件中

在日志中的终端中运行配置文件后,我看到:

在我写的测试文件中

这段代码工作正常,但我的问题是路径 /var/www 在每个环境中都不相同,可能是其他用户将项目保留在其他路径中,然后它将无法工作。所以我需要添加一些相对路径。谁能告诉我如何在这里添加相对路径?

我试过了

在 karma.config.js 文件和测试文件中:

但它没有用,显示错误无法实例化模块'/templates/directive.html'

我也试过

在 karma.config.js 文件和测试文件中:

但它也失败了。请帮助我如何解决此问题并添加相关网址。

0 投票
1 回答
785 浏览

angularjs - ngHtml2JsPreprocessor 不加载包含模板的模块,用 karma 测试

使用 karma ngHtml2JsPreprocessor 测试我的 Angular 应用程序,我已经阅读了几十页关于如何配置 karma 以生成 js 模板而不是由 Angular 指令加载的 html 模板,我被以下消息所困扰:

我的文件夹结构是这样的:

我的指令是这样定义的:

Karma 配置如下:

测试指令的规范:

当我启动测试时,出现以下错误:

我尝试了很多配置,但没有任何效果,我还尝试通过添加一些 log.debug 来调试 ngHtml2JsPreprocessor 并且我看到模块“js_templates”是正确创建的,问题是为什么我不能为规范加载它. 可能有用的信息(不确定它是否会改变某些东西):我正在使用 requirejs。谢谢你的帮助

0 投票
0 回答
170 浏览

javascript - 如何在 karma-ng-html2js-preprocessor 中使用 url 参数

我试图测试我的指令,但是当我用业力加载所有东西时,我使用 ng-html2js。

它可以很好地加载模块,然后失败

实际问题

那么如何将 url 参数添加到我的 ng-html2js 模块?

因为我们使用 ?v=VERSIONNUMBER 为每个模板文件添加缓存,甚至指令模板

业力配置

考试

0 投票
2 回答
836 浏览

javascript - 隔离作用域()给出未定义的 - Karma 的单元测试指令

正如问题标题中所述,我在调用isolateScope(). 我尝试根据Unit Testing AngularJS Directives With External Templates上给出的说明对我的 Angular 指令进行单元测试。

这是我的代码:

指令.js

我用过karma-ng-html2js-preprocessortemplateUrl。

karma.conf.js(代码仅包含与 ng-html2js 相关的部分)

指令规范.js

这里的console.log(element);印刷品{0: <test-directive label="label" class="ng-scope"></test-directive>, length: 1}

问题: console.log('Isolate scope: '+ element.isolateScope());给出undefined.

我在 StackOverflow 中的许多问题上查看了这个问题,但找不到正确的解决方案。

另外,我必须使用$httpBackend来获取 html 文件,否则会引发Unexpected Request错误。

我将非常感谢任何帮助,因为自过去一周以来我一直陷入此错误!

0 投票
1 回答
1351 浏览

karma-runner - Karma 预处理器未运行

我的 karma.conf.js 包括:

(我也试过没有指定任何插件。)

我的 devDependencies 包括:

我的测试包括:

这些给出了错误:

运行 karma --log-level debug,我没有看到任何[preprocessor.html2js]条目。(我确实得到Loading plugin karma-ng-html2js-preprocessor.

我究竟做错了什么?

0 投票
0 回答
348 浏览

javascript - 尝试使用 ng-html2js-preprocessor 修复“意外请求 GET”不起作用

我想用业力和茉莉花测试一个角度指令。该指令使用名为 complete.html 的外部模板。

我尝试使用以下代码获取 html 模板:

然后我收到此错误:

我搜索了我的问题的解决方案并找到了这篇文章: Unit Testing AngularJS directive with templateUrl

我按照业力解决方案的说明进行操作。我的 karma.conf.js 如下所示:

(我明显剪掉了不必要的部分)

然后按照指示,我尝试在我的测试文件中加载生成的模块 complete.html:

但我仍然得到错误Error: Unexpected request: GET test/complete.html

我觉得我错过了一个重要的部分,但无法为我所处的情况找到一个完整的解决方案。我如何正确使用生成的模块,这样我就不会收到错误?

我会非常感谢一些帮助。

0 投票
1 回答
466 浏览

angularjs - 设置 ng-htmljs-preprocessor 业力预处理器

我正在设置我的 Karma 配置文件,但我不完全理解存在的一些选项,因为我没有成功测试已经通过 ngHtml2JsPreprocessor 并且已经

在 ngHtml2JsPreprocessor 内部,我可以添加一些涉及路径的键值属性。

我现在注释掉了模板,以确保我可以作为模块访问每个文件。我正在加载没有错误的模块。我可以在我的开发工具中找到 templateCached 版本。

我的 Templates 文件夹位于我创建的基本路径之外。

我在预处理器对象中引用了它

同样,我的所有模板现在都是 js 文件并被缓存。

我在package.json 中将文件保存为

我在插件中引用了我的安装。

我已加载所有文件

我的测试从业力开始运行

但是,我的指令只是一个空字符串

返回“”

我已经设置了吟游诗人注入

这是我的 beforeEach 的内部

我不知道为什么我得到一个空字符串。我正在创建 html 文件,但里面没有任何内容。

我只想知道是否应该将模板缓存文件显示在我的开发工具的文件夹中?还有是否应该在karma.conf.js的文件数组中引用文件

现在我引用了 html 文件?我已经尝试过 js 文件,但似乎没有做任何事情

0 投票
1 回答
340 浏览

angularjs - html2js 预处理器剥离多个前缀

我有一个文件结构,其中模板位于不同的文件夹中,但构建任务将它们全部放入一个文件夹中。我希望从文件中删除所有不同的前缀并添加正确的构建前缀。

这可以加载所有模板

我在预处理器中寻找相同的功能,像这样

有没有办法删除直到 template.html 的整个前缀?

我的文件夹结构如下:

构建文件夹如下

提前致谢。