2016-08-28 10 views
0

MVCプログラムでは、角度値の単純なコントローラ値はバインドされていません。 私のコードは次のとおりです。AngularJS - コントローラ値がバインドされていない

_Layout.cshtml

<body data-ng-app="ShoppingCartApp"> 
    <div class="container body-content"> 
     @RenderBody() 
     @Scripts.Render("~/bundles/jquery") 
     @Scripts.Render("~/Scripts/angular.js") 
     @Scripts.Render("~/Scripts/Custom/App.js") 
     @Scripts.Render("~/Scripts/Custom/ShoppingCartController.js") 
     @RenderSection("scripts", required: false) 
     <hr /> 
    </div> 
</body> 

App.js

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

ShoppingCartController.js

app.controller('ShoppingCartController', function ShoppingCartController($scope, $http) { 
    $scope.ShoppingCartObj.products = []; 
    $scope.test = "ABC"; 

    // On load events 
    // $scope.loadValues(); 
}); 
私のHTMLコードがある

は次のとおりです。

@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<script></script> 
<h2>Index</h2> 
Total {{2+2}} // This value workd FINE 
<div ng-controller="ShoppingCartController"> 
    <div class="row"> 
     <div class="nav navbar-nav navbar-left"> 
      <h3>Total {{2+2}}</h3> // Not working THIS 
     </div> 
     <h1>{{test}}</h1> // Not working THIS 

    </div> 
</div> 

enter image description here

私はそれが働いていないコントローラ内のコントローラやアクセスディレクティブの値にアクセスしようとします。私はここで何が恋しい?

答えて

2
にあなたのコントローラーを変更し

app.controller('ShoppingCartController', function($scope, $http) {....}); 

それともShoppingCartControllerという名前の関数を作成し、コントローラに渡す:

app.controller('ShoppingCartController', ShoppingCartController); 

$scope.ShoppingCartObj = {};$scope.ShoppingCartObj.productsを変更しているため、そのオブジェクト$scope.ShoppingCartObj.products = [];に製品を追加以前は$ scope.ShoppingCartObjが何であるかを定義していたので、このオブジェクトは定義されていません。

+0

このように変更しました。でもそれは動作していない – DevT

+0

注入やその他のエラーに関連するコンソールのすべてのエラー? – Developer

+0

はいあります。定義されていない – DevT

2

あなたはバンドラーを使用している場合は、依存性の注入はまた

値を指定する必要があります - あなたはプロパティにproducts

app.controller('ShoppingCartController', ['$scope', '$http', 
    function ShoppingCartController($scope, $http) { 
     $scope.ShoppingCartObj = {}, 
     $scope.ShoppingCartObj.products = []; 
     $scope.test = "ABC"; 

}]); 

を割り当てることはできませんのでShoppingCartObjはどこにも宣言されていないここで働いていますJsfiddle

関連する問題