2016-08-28 6 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

да есть .. Невозможно установить свойство 'products' undefined – DevT

2

Если вы используете Bundler вам нужно указать Injection Dependency значения

Также - ShoppingCartObj не объявлена ​​в любом месте, так что вы не можете присвоить свойству products

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

}]); 

Вот рабочий Jsfiddle

Смежные вопросы