首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS :顽固的JQlite方法

AngularJS :顽固的JQlite方法
EN

Stack Overflow用户
提问于 2013-11-02 11:40:16
回答 2查看 993关注 0票数 1

我想在我的指令中测试一些逻辑:

代码语言:javascript
复制
...
link: function ($scope, $element) {
   var rightMargin = 3;
   var w = $element.find('span')[0].scrollWidth;
   if (w > 100) {
      $element.css('width', (w + rightMargin) + 'px');
   }
...

因为$compile服务实际上并没有在文档中添加元素,所以scrollWidth总是返回0。因此,我不知道如何存根$element.find调用的返回值,因为在我的单元测试中无法访问$element实例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-03 20:19:26

尝试在正文中直接设置页面的HTML

使用innerHTML:

代码语言:javascript
复制
angular.element(document.body).html('<div class="my-elm" my-directive></div>');
var elm = angular.element(document.body.querySelector('.my-elm'));
$compile(elm)($rootScope);

或使用附件:

代码语言:javascript
复制
var elm = angular.element('<div class="my-elm" my-directive></div>');
angular.element(document.body).append(elm);
$compile(elm)($rootScope);
票数 1
EN

Stack Overflow用户

发布于 2013-11-04 14:22:24

如果这是一个单元测试,那么您不应该测试外部依赖项,只是您的逻辑是准确的。我会把它像。

代码语言:javascript
复制
spyOn($element,'css');
#call your code here
expect($element.css).toHaveBeenCalledWith('width','99px');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19741514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档