Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Javascript 使用隔离范围测试AngularJS指令_Javascript_Angularjs_Karma Runner - Fatal编程技术网

Javascript 使用隔离范围测试AngularJS指令

Javascript 使用隔离范围测试AngularJS指令,javascript,angularjs,karma-runner,Javascript,Angularjs,Karma Runner,我试图理解如何为指令编写规范,尤其是如何访问隔离作用域方法和属性。我已经做了一上午了,还有一些事情我不明白。以下是我为设置测试套件所做的主要工作: 1.使用我将传递给指令的属性创建一个作用域 2.使用此范围编译指令, 4.对这个隔离作用域包含的内容进行一些测试。 但是,即使我可以检索隔离的作用域,这个作用域也不会显示它应该具有的任何属性(例如,我在指令的link方法中声明的方法)。它只显示指令参数,而不显示内部的方法和属性,就像它应该显示的那样 如果你们有线索的话。。今天我读了很多关于这方面的文

我试图理解如何为指令编写规范,尤其是如何访问隔离作用域方法和属性。我已经做了一上午了,还有一些事情我不明白。以下是我为设置测试套件所做的主要工作:

1.使用我将传递给指令的属性创建一个作用域 2.使用此范围编译指令, 4.对这个隔离作用域包含的内容进行一些测试。 但是,即使我可以检索隔离的作用域,这个作用域也不会显示它应该具有的任何属性(例如,我在指令的
link
方法中声明的方法)。它只显示指令参数,而不显示内部的方法和属性,就像它应该显示的那样


如果你们有线索的话。。今天我读了很多关于这方面的文章,将我的代码与博客帖子上的代码进行了比较,看不出我做错了什么

您想要一个子作用域(继承父作用域的内容)还是一个独立的作用域?您能告诉我们您的指令吗?您是否像这样指定了scope属性:
scope:{param:'='}
以隔离您的作用域?@JossefHarush我有一个隔离的作用域。我想在我的因果报应规范中测试它的内容。@Freezystem你看过plunkr吗?@PA.Buisson的方向正确吗?
var scope = $rootScope.$new();
scope.daParam = "param handed to the directive";
element = $compile( "<my-directive param='daParam'></my-directive>" )( scope );
scope.$digest();
isolateScope = element.isolateScope();
describe("compilation results", function()
{
  it("has the outer directive param", function() {
    // Pass
    expect( isolateScope.param ).toBeDefined();
  });

  it("has the inner scope methods", function() {
    // Doesn't pass
    expect( isolateScope.myMethod ).toBeDefined();
  });
});