当前位置: 首页 > 面试题库 >

在角度分量中使用“要求”

殷耀
2023-03-14
问题内容

根据文档(具体来说,表格将指令与组件进行了比较),角度组件允许需要其他指令(还是仅组件?)。但是,组件没有链接功能,该功能可以访问所需的控制器。源,违背了文件,似乎表明这是不可能创建组件时使用“需要”。哪个是真的?


问题答案:

引用的来源已过时。从1.5.0版本开始,其他组件中可能需要组件控制器(指令同样适用)。

该指南中的一个示例显示了如何在不借助的帮助下,组件和指令在1.5中进行交互的方式link

requireobject和bindToController一起使用时,所需的控制器实例将作为属性分配给当前控制器。

因为这是在指令链接期间发生的,所以所需的控制器在控制器构造函数中不可用,这就是为什么存在$onInit魔术方法的原因。如果存在,则在将所需的控制器添加到后立即执行this

app.directive('someDirective', function () {
  return {
    scope: {},
    bindToController: {},
    controllerAs: 'someDirective',
    require: {
      anotherDirective: '^anotherDirective'
    },
    controller: function ($scope) {
      console.log("You don't see me", this.anotherDirective);

      this.$onInit = function () {
        console.log("Now you do", this.anotherDirective);
      };
    }
  }
});

app.component('someComponent', {
  controllerAs: 'someComponent',
  require: {
    anotherDirective: '^anotherDirective'
  },
  controller: function ($scope) {
    console.log("You don't see me", this.anotherDirective);

    this.$onInit = function () {
      console.log("Now you do", this.anotherDirective);
    };
  }
});

声明样式与引擎盖相当,可以在1.5中互换使用,这component是一种简洁的样式。



 类似资料:
  • 我在寻找一个解决方案,与反应形式的工作

  • 我试图用量角器模拟我网站上的用户故事。 用户必须输入使用自动完成的输入。在现实生活中,用户必须在输入中键入一些文本,然后用鼠标或更自然的向下键选择正确的命题。 问题是我似乎不能用量角器来模拟。element.sendKeys不允许您这样做。我已经尝试了十几种不同的方式,它最多只能产生不可预测的结果。 因此,我想直接根据我的输入操作ng模型。有没有办法从量角器访问元素的作用域并在其上调用函数/设置属

  • 我想创建一个具有不需要值的属性的组件。例如,而不是像这样的东西:(我现在有) 或 我宁愿有: 因此组件本身必须查看属性editMode是否存在。当我有很多这样的属性时,这个看起来会干净很多。我没有看到任何关于如何做到这一点的文档。可行吗?

  • 问题内容: 当我在循环中使用Protractor时,循环索引()不是我期望的。 症状: 失败:索引超出范围。尝试访问索引为’x’的元素,但是只有’x’个元素 要么 索引是静态的,并且始终等于最后一个值 我的密码 例如: 要么 要么 问题答案: 发生这种情况的原因是因为量角器使用了诺言。 阅读https://github.com/angular/protractor/blob/master/docs

  • ![Frame Details][firebug正确显示了帧,但无法切换到帧]1 我正在尝试切换到id =所有设备的框架,但无法到达那里。我可以切换到任何其他框架,但不能切换到这个框架。以下是我尝试过的选项 browser.driver.switchTo(). frame('所有设备');browser.driver.switchTo(). frame(browser.driver.findEle

  • 问题内容: WebStorm中提供了一种运行和调试量角器Web测试的方法。我只想在这里分享这个答案 问题答案: 获取节点路径(在终端中输入) 在WebStorm中:单击“ 编辑配置 ”-“ 运行 ”按钮左侧的下拉菜单(绿色箭头,类似于“播放”按钮) 单击“添加按钮”(绿色 + )以添加新的Node配置。选择“ Node.js ” 填写参数: 节点解释器 :Node.js的完整路径(从步骤1开始)