2016-08-28 52 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.products$scope.ShoppingCartObj = {};,然後將產品添加到該對象$scope.ShoppingCartObj.products = [];因爲,prev你havnt定義了什麼$ scope.ShoppingCartObj是,所以這個對象將是未定義的。

+0

我改變它這樣。但即使不起作用 – DevT

+0

控制檯中與注入或其他錯誤有關的任何錯誤? – Developer

+0

是的,有..不能設置屬性'產品'的未定義 – DevT

2

如果你使用的捆紮機,你需要指定依賴注入值

而且 - ShoppingCartObj所以你不能分配給屬性products

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

}]); 

這裏沒有任何地方宣佈是一個工作Jsfiddle