简单的ng-click不适用于打字稿

时间:2016-04-06 12:52:02

标签: javascript angularjs typescript

我试图从我的html页面调用点击功能中的函数, 添加了来自nuget的所有打字稿定义文件,但出了点问题 我的点击功能不起作用....控制台甚至没有错误

这是我的Hrml和控制器代码

Html Page

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
    <script src="Scripts/angular.js"></script>

    <script src="test.js"></script>
    <title></title>

</head>
<body ng-app="testModule">
    <div ng-controller="test">
        <input type="button" ng-click="click()" value="test" />
    </div>
</body>
</html>

控制器

angular.module("testModule", []);

class test {

    constructor() { }

    click() {

        alert();
    }
} 


angular.module("testModule").controller("test", test );

2 个答案:

答案 0 :(得分:11)

这不起作用,因为ng-click="click()"试图调用未定义的$scope.click()

我强烈建议您在使用AngularJS和Typescript时使用controller as - 语法

Demo

答案 1 :(得分:4)

这是更正后的代码。不要把这个标记为答案,@ Aides来到我面前。

Html Page

<!DOCTYPE html>
<html> <!-- its 2016 -->
<head>
   <script src="Scripts/angular.js"></script>

   <script src="test.js"></script>
   <title></title>

</head>
<body ng-app="testModule">
   <div ng-controller="Test as test">
       <input type="button" ng-click="test.click()" value="test" />
   </div>
</body>
</html>

控制器

angular.module("testModule", []);

class Test {

    click() {
        alert();
    }
} 

angular.module("testModule").controller("Test", Test );