无法从 AngularJS 中的控制器初始化对象

Unable to initialize object from controller in AngularJS

fiddle 看起来像这样:

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

问题

Why are the values not getting printed?

您的代码应该如下更正,

这就是您需要定义控制器的方式,而不是像 app.controller = angular.('testAppCtrl', function ($scope) {

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

这就是您需要 return 函数 vehicleDetail 中的值的方式,在您的 return 情况下,您无法访问 vehicle 属性,例如 vehicle.color,您需要像 $scope.vehicle.color 一样访问它,因为 vehicle 在范围内。这个 $scope.vehicleDetail() = function () {.. 是错误的,应该更正为 $scope.vehicleDetail = function () {..

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

这里是DEMO