javascript - 带指令的 Angular 三向按钮

标签 javascript angularjs

我正在寻找这个问题的答案:

Multi State button like toggle in angularJS

...但是使用指令。主要原因是我试图实现隔离范围以创建可重用的按钮。我尝试过:

angular.module('myApp', [])
    .directive('buttonToggle', function() {
        return {
            restrict: 'A',
            scope: {
                myBtnArr: "="
            },
            myBtnTxt: ["AND", "OR", "NOT"],
            template: '<button>{{ myBtnTxt[myBtnArr] }} </button>'
        }
    });

在 HTML 中使用类似这样的内容:

<div button-toggle my-btn-arr=0></div>

但是 Angular 似乎不喜欢这种风格,要么显示按钮但不显示文本,要么抛出神秘的 a.match 不是函数 错误。想法?

最佳答案

您需要修改指令以包含链接函数。然后将 myBtnTxt 放在其中的范围内。就像这样:

app.directive('buttonToggle', function() {
  return {
    restrict: 'A',
    scope: {
      myBtnArr: "="
      },
    template: '<button>{{myBtnTxt[myBtnArr]}}</button>',
    link: function(scope){
      scope.myBtnTxt = ["AND", "OR", "NOT"];
    }
  };
});

关于javascript - 带指令的 Angular 三向按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34666505/

相关文章:

javascript - 从 ContactsApp Service 获取联系人以使用 GAS 自动完成

javascript - AngularJs ng-模式正则表达式

javascript - 按钮上的 Angular 单击 ctrl 外部,传递按钮 id

javascript - 带有 Angular 指令的 TreeView

javascript - 如何根据 Angular/JavaScript 中的几个可能值过滤对象数组?

javascript - 响应 200 OK 但 Jquery 显示错误?

javascript - slider 不工作,控制台上没有错误 - Javascript Vanilla

javascript - Kendo 网格过滤器,带有自动完成文本框,其中包含 ASP.Net MVC 中的文本和值

angularjs - 带有 body 数据的重新删除

javascript - 在 PHP 和 JavaScript 中保存动态添加的行