controllerAs具有指令和隔离范围

时间:2015-06-02 19:02:39

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-controller

我想创建一个ok / cancel按钮设置,开发人员可以在其中更改标签

我有以下指令

angular.module('myApp')
  .directive('myButtons',function(){

    var ctrl = function ($scope) {
        var controller = this;
    };

    return {
        replace: true,
        restrict: 'E',

        scope: {
            cancelLabel: '@',
            saveLabel: '@',
            save: '&',
            cancel: '&'
        },

        templateUrl: 'directives/myButtons.html',

        controller: ctrl,
        controllerAs: 'controller',
        bindToController: true,
    };

});

该指令的html包含以下内容

<div>
   <button>{{controller.cancelLabel}}</button>
   <button>{{controller.saveLabel}}</button>
</div>

调用此指令的实际html是

 <my-buttons saveLabel="Discard" cancelLabel="Cancel"></my-buttons>

但是,标签未设置。如何从html中获取saveLabel =和cancelLabel =的内容

显示表单本身,如果我手动设置controller.saveLabel =“save”,那么它在保存按钮上显示就好了

我知道我错过了很简单的事情;)

由于

1 个答案:

答案 0 :(得分:2)

你的指令元素属性是错误的,它应该是连字符(-)而不是使用驼峰的情况。

<强>标记

<my-buttons save-label="Discard" cancel-label="Cancel"></my-buttons>