2015-11-29 36 views
0

fiddle從控制器初始化對象看起來是這樣的:無法在AngularJS

var app = angular.module('testApp', []); 
 

 
app.controller = angular.('testAppCtrl', function ($scope) { 
 
    $scope.vehicle = { 
 
     type: 'car', 
 
     color: 'red' 
 
    }; 
 
    $scope.vehicleDetail() = function() { 
 
     return "Vehicle type : " + vehicle.type + ", " 
 
     vehicle.color; 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="testApp" ng-controller="testAppCtrl"> 
 

 
<h1> 
 
AngularJS object ng-init powered by controller example 
 
</h1> 
 

 
Type: <input ng-model='vehicle.type' /> 
 
<br/> 
 

 
Color: <input ng-model='vehicle.color'/> 
 

 
Vehicle details : {{vehicleDetail()}} 
 

 
</div>

我試圖用函數來初始化從內部控制的對象,而是採用NG-INIT

問題

爲什麼值沒有得到印?

回答

2

你的代碼應該糾正像下面,

這就是你需要如何定義控制器,不像app.controller = angular.('testAppCtrl', function ($scope) {

app.controller('testAppCtrl',function($scope)... 

這是你需要怎樣的功能vehicleDetail返回值,在你的回報情況下,你不能訪問諸如vehicle.colorvehicle性能,你需要訪問它像$scope.vehicle.color因爲vehicle是在範圍內。這$scope.vehicleDetail() = function() {..錯了,它應該$scope.vehicleDetail = function() {..

$scope.vehicleDetail = function() 
{ 
    return "Vehicle type : " + $scope.vehicle.type + ", "+ $scope.vehicle.color; 
}; 

這裏進行修正是DEMO

+1

:) cheerz很樂意幫助你 –