2017-10-26 20 views
1

私はクラスを定義し、それをインスタンス化し、オブジェクトをスコープに属性付けしました。 ng-modelのリファレンスが完了しましたが、なぜこのコードが機能しないのかわかりません。構文エラーがありましたng-modelのオブジェクトプロパティ

-- app.js 
angular.module('myApp', [ 
    'myApp.controllers' 
]); 


-- controllers.js 
class Finance() { 
     constructor() { 
      this.salary = 100; 
      this.percentage = 10; 
     } 

     result() { 
      return this.salary * this.percentage * 0.01; 
     } 
    } 

var m = angular.module('myApp.controllers', []); 
m.controller('FinanceController', function($scope) { 

    $scope.f = new Finance(); 

    console.log($scope.f.salary); 
    console.log($scope.f.percentage); 
    console.log($scope.result()); 
}); 


-- index.html 
<!doctype html> 
<html lang="en" ng-app="myApp"> 
<head> 
<title>Finance Meter</title> 
</head> 
<body ng-controller="FinanceController"> 
    Your Salary? 
    <input type="text" ng-model="f.salary"> 
    <br/>How much should you invest in shopping? 
    <input type="text" ng-model="f.percentage"> % 
    <br/>The amount to be spent on gadgets will be: <span>{{f.result()}}</span> 
    <script src="lib/angular/angular.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
</body> 
</html> 
+0

コントローラーを定義するには、 'm.controller( 'Finance'、Finance)'(コントローラの注入はコンストラクターの内部に入ります) –

+0

おそらくtypoですが、$ scope.fであってはいけません。結果()? – Mickers

答えて

0

私は角度が予約語「クラス」で定義されたクラスでは動作しません疑う 私を助ける:

はconsole.log($ scope.f.result()) ;

+0

classの正しい定義は次のとおりです:class Finance {..} – Felipe