zoukankan      html  css  js  c++  java
  • angular directive 的controllerAs的用法

    原文: https://stackoverflow.com/questions/31857735/using-controlleras-with-a-directive

    -------------------------------------------------------------------------------------

    With "controllerAs", the controller instance alias - vm, in your case - is published on the scope as the .vm property of the scope.

    So, to access its properties (i.e. the properties of the controller), you need to specify {{vm.text}} or ng-click="vm.click".

    When you use controllerAs syntax, then you have to use

    bindToController: true

    it will work in your directive.

    When using 'controllerAs' syntax ,as above,the scope is bound to the controller’s 'this' reference. So it allows us to introduce a new namespace('vm' here) bound to our controller without the need to put scope properties in an additional object literal(say $scope). So accessing anything in controller's scope,requires 'vm' namespace, as,

    '<button ng-click="click">{{vm.text}}</button>'

    下面是另外一种风格的directive的写法
    <!DOCTYPE html>
    <html ng-app="app">
    
      <head>
        <script data-require="angular.js@1.4.3" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular.js"></script>
        <link rel="stylesheet" href="style.css" />
        <script src="script.js"></script>
      </head>
    
      <body>
        <h1>Hello Plunker!</h1>
        <test></test>
      </body>
    
    </html>
    

      

    angular
        .module('app', []);
    
    angular
        .module('app')
        .directive('test', test);
    
    function test() {
        return {
            restrict: 'E',
            template: '<button ng-click="vm.click()">{{vm.text}}</button>',
            controller: testCtrlaaa,
            controllerAs: 'vm'
        }
    }
    // 下面的这三行可以不要的。
    //angular
    //    .module('app')
    //    .controller('testCtrlttttada', testCtrlaaa);
    
    function testCtrlaaa() {
      var vm = this;
      vm.text = "TEST";
      vm.click= function(){
        alert('aaaa');
      }
    }
    

      


















  • 相关阅读:
    HTC G7 搜索和感光按键修改
    Delphi开源组件SynEdit
    (转)Delphi获取windows系统版本信息
    TDateTime转UTC的时间差
    Windows7 C盘无法读写文件
    Convert UTC string to TDatetime in Delphi
    delphi抓全屏图,游戏窗口,游戏Client窗口
    ADO Table Locate
    Delphi与管道操作
    Delphi从UTC (GMT)返回时差
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9243160.html
Copyright © 2011-2022 走看看