javascript - push object to an array not working in angular js -


i want push object array . not happening. pushing object comments (values of forms) on submit click, dish.comments of dishdetailcontroller. ng-controller="dishcommentcontroller" nested inside ng-controller="dishdetailcontroller" going wrong ?

main.html

    <div class="row row-content" ng-controller="dishdetailcontroller menuctrl">             <div class="col-xs-12">                 <ul class="media-list">                 <li class="media">                     <div class="media-left media-top">                         <a href="#">                         <img class="media-object img-thumbnail"                          ng-src={{menuctrl.dish.image}} alt="uthappizza">                         </a>                     </div>                     <div class="media-body">                         <h2 class="media-heading">{{menuctrl.dish.name}}                          <span class="label label-danger">{{menuctrl.dish.label}}</span>                          <span class="badge">{{menuctrl.dish.price | currency}}</span></h2>                         <p>{{menuctrl.dish.description}}</p>                       </div>                 </li>                  {{menuctrl.dishes}}             </ul>              </div>             <div class="col-xs-9 col-xs-offset-1">                   <div class="media-right"><h3 class="media-right">customer comments  &nbsp; &nbsp; &nbsp;<small>sort by:                          <input type="text" ng-model="sort"></small></h3></div><br>                 <ul ng-repeat="comments in menuctrl.dish.comments | orderby:sort">                 <blockquote>                 <div class="media-body">                          <h3 class="media-heading">{{comments.rating}} stars</h3>                          <h4 class="media-heading"></h4>                           <p>{{comments.comment }}</p>   <footer>{{comments.author}},<cite title="source title">{{comments.date | date:'mmm,dd,yyyy'}}</cite></footer>                           <p><li></li></p>                       </div>                     </blockquote>                 </ul>              </div>                  <div class="col-xs-9 col-xs-offset-1" ng-controller="dishcommentcontroller comment">                  <blockquote>                 <div class="media-body">                          <h3 class="media-heading">{{star}} stars</h3>                          <h4 class="media-heading"></h4>                           <p>{{comm }}</p>   <footer>{{name}},<cite title="source title">{{}}</cite></footer>                           <p><li></li></p>                       </div>                     </blockquote>                      <ul class="list-unstyled">                       </ul>                 <form class="form-horizontal" name="commentform"                         ng-submit="submitcomment()" novalidate>                         <p><label>your name </label>                         <input type="textfield" name="name" ng-model="name" style="width:600px;"></p>                         <p><label>number of stars </label><span class="radio_star" ng-init="star=5">                          <input type="radio" ng-model="star" value="1">1 <input type="radio" ng-model="star" value="2">2 <input type="radio" ng-model="star" value="3">3 <input  type="radio" ng-model="star" value="4">4 <input  type="radio" ng-model="star" value="5"  checked> 5 </span>                          </p>                         <p><label style="vertical-align:top;">your comments </label>                          <textarea ng-model="comm" rows="4" cols="70"></textarea> </p>                          <p>                             <input type="button" ng-click="submitcomment()" value="comment" />                          </p>                    </form>             </div> 

app.js

 'use strict';         angular.module('confusionapp',[])          .controller('dishdetailcontroller', ['$scope', function($scope)  {              var order="";             var dish={                           name:'uthapizza',                           image: 'images/uthapizza.png',                           category: 'mains',                            label:'hot',                           price:'4.99',                           description:'a unique combination of indian uthappam (pancake) , italian pizza, topped cerignola olives, ripe vine cherry tomatoes, vidalia onion, guntur chillies , buffalo paneer.',                            comments: [                                {                                    rating:5,                                    comment:"imagine eatables, living in confusion!",                                    author:"john lemon",                                    date:"2012-10-16t17:57:28.556094z"                                },                                {                                    rating:4,                                    comment:"sends heaven, wish mother-in-law eat it!",                                    author:"paul mcvites",                                    date:"2014-09-05t17:57:28.556094z"                                },                                {                                    rating:3,                                    comment:"eat it, eat it!",                                    author:"michael jaikishan",                                    date:"2015-02-13t17:57:28.556094z"                                },                                {                                    rating:4,                                    comment:"ultimate, reaching stars!",                                    author:"ringo starry",                                    date:"2013-12-02t17:57:28.556094z"                                },                                {                                    rating:2,                                    comment:"it's birthday, we're gonna party!",                                    author:"25 cent",                                    date:"2011-12-02t17:57:28.556094z"                                }                             ]                     };              this.dish = dish;          }])            .controller('dishcommentcontroller', ['$scope', function($scope) {              //step 1: create javascript object hold comment form               $scope.submitcomment = function () {                  var d = new date();                 var n = d.toisostring();                  alert($scope.star);                  var comment={                 comment:$scope.comm,                 rating:$scope.star,                  author:$scope.name,                 date:new date().toisostring()};                 alert('toto');                 //step 2: how record date               //  "the date property of javascript object holding comment" = new date().toisostring();                 alert(comment);                 // step 3: push comment dish's comment array                 $scope.dish.comments.push(comment);                  alert($scope.name);                 //step 4: reset form pristine                  //step 5: reset javascript object holds comment             };         }])   ;    

if not mistaken have never created variable $scope.dish, variable var dish = ..., can't assign ;-)


Comments