Angularjs:未获得初始值

时间:2017-09-20 05:27:19

标签: angularjs

我在{{total}}里面得到的值但是当我在ng-init中初始化这个值时,没有在ng-init中得到total的值

例如:

计算总价时调用此函数:

ng-change HTML部分:

   <div class="col-md-2 col-sm-2 col-lg-2  col-lg-offset-1  col-xs-12 ">
                <select class="form-control select-data pull-right mt10" ng-model="book.package[$index]" ng-change="get_total_price(x.price,book.package[$index],x.id)">
                    <option value="">0</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                </select>
       </div>

ng-change="get_total_price(x.price,book.package[$index],x.id);

从此我得到总价

${{total}}

现在我想通过像这样的ng-init初始化这个

<input type="text" class="hidden" placeholder="Enter name" ng-init="book.total_price= total" ng-model="book.total_price">

但是当我通过json这样检查这个

{{total_price | json}}

它显示的是total_price 0而不是我{{total}}

任何人都可以帮我解决这个问题吗?任何帮助将不胜感激。

提前致谢。

已编辑:

$scope.get_total_price = function ($price,$value,$id) { 
        $scope.total = $scope.total + Number($price)*Number($value);
};

这是我获取价格值并返回此视图的功能,我需要在ng-init中初始化此返回价格。

2 个答案:

答案 0 :(得分:1)

试试这可能对你有帮助

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
    $scope.value = 0;
    $scope.book = {
      total_price : 0,
    }
    $scope.get_total_price = function (price,value,id) { 
         $scope.book.total_price =  $scope.book.total_price + Number(price) * Number(value);
    };
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  <span>Total:- {{book.total_price}}</span>
  <br>
   <select ng-model="value" ng-change="get_total_price(2,1,1)">
       <option value="">0</option>
       <option value="1">1</option>
       <option value="2">2</option>
       <option value="3">3</option>
       <option value="4">4</option>
       <option value="5">5</option>
       <option value="6">6</option>
       <option value="7">7</option>
       <option value="8">8</option>
       <option value="9">9</option>
       <option value="10">10</option>
       <option value="11">11</option>
       <option value="12">12</option>
    </select>
    <br>
 <input type="text" class="hidden" placeholder="Enter name" ng-model="book.total_price">
<div>

答案 1 :(得分:0)

您已初始化book.total_price对象而不是total_price

您的total_price对象位于book对象内。因此,您应该编写代码{{book.total_price | json}}而不是{{total_price | json}}