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');
      }
    }
    

      


















  • 相关阅读:
    Java Web前后端分离的思考与实践
    JDBC剖析篇(1):java中的Class.forName()
    UVa1471
    Uva11572
    Uva11134
    Uva10755
    Floyd判圈法
    Java泛型-通配符的上限和下限问题
    Codeforces 384E-线段树+dfs序
    codeforcesRound378C-dfs+树状数组
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9243160.html
Copyright © 2011-2022 走看看