Angularjs 创建;嵌套的;ng单击角度指令的内部

Angularjs 创建;嵌套的;ng单击角度指令的内部,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我有一个指令,在调用t.start()时打开引导程序: 我想创建一个按钮,单击它可以调用变量t.start()。有可能吗?我想实现这一点,这样就可以独立于控制器内部的函数,因为这个指令将出现在应用程序的每个视图上,所以如果它能够在自身内部调用一个参数就好了。我试着用一个按钮在指令中创建一个模板,并用t.start()添加一个ng clikc操作,当然失败了,因为控制器不知道变量t,我的指令所在的位置 示例: 假设我有两个视图ShowItems和CreateItem,它们有两个不同的控制器。在这些

我有一个指令,在调用t.start()时打开引导程序:

我想创建一个按钮,单击它可以调用变量t.start()。有可能吗?我想实现这一点,这样就可以独立于控制器内部的函数,因为这个指令将出现在应用程序的每个视图上,所以如果它能够在自身内部调用一个参数就好了。我试着用一个按钮在指令中创建一个模板,并用t.start()添加一个ng clikc操作,当然失败了,因为控制器不知道变量t,我的指令所在的位置

示例:

假设我有两个视图ShowItems和CreateItem,它们有两个不同的控制器。在这些视图中,我有一个按钮/链接,单击它我想显示我的导游。这很简单

现在,在我的教程中,我有两个不同的步骤,当我按下CreateItem视图中的按钮时,我希望看到CreateItem视图的教程中的步骤,反之亦然


如果我在控制器中使用函数,这很简单。但是否可以只使用指令,因为我可以有20个不同的控制器

基于一些假设-我假设您希望在这里从指令动态调用范围内的例程。以下面的代码为例

HTML/查看代码

<div my-directive="callbackRoutine">Click Here</div>
app.directive("myDirective", function () {
  return {
    restrict: 'A',
    link: function (scope, element, attr){
      element.bind('click', function (){
        if (typeof scope[attr.myDirective] == "function"){
          scope[attr.myDirective]();
        }
      });
    }
  };
});
指令

<div my-directive="callbackRoutine">Click Here</div>
app.directive("myDirective", function () {
  return {
    restrict: 'A',
    link: function (scope, element, attr){
      element.bind('click', function (){
        if (typeof scope[attr.myDirective] == "function"){
          scope[attr.myDirective]();
        }
      });
    }
  };
});

在本例中,将回调例程指定为指令的一部分。等式的关键是指令的作用域继承自任何父作用域,这意味着您甚至可以从传递给指令的作用域调用例程。要查看这方面的工作示例,请参阅以下示例:。希望对你有所帮助

您能否提供一个您希望指令生成的内容的模拟?基于这个问题,我不确定我想要的结果是否清晰。我补充了一个例子谢谢你的回答,我用一个例子更新了我的问题。如果可能的话,我想避免使用控制器,因为如果有更新的话,我有20个不同的控制器需要处理。我会留下我的原始答案——尽管这不是很正确的答案。可能更有用的是使用角度boostrap模式作为示例:。这提供了提供模板的选项-这是您想要的。因为这是开源的,所以您可以查看代码。您甚至可以直接在项目中使用它。祝你好运!我现在明白了,我只是在我的指令中创建了一个函数,并制作了一个按钮来调用这个函数,这使它变得灵活。谢谢你的帮助