如何在angularjs中将子控制器中的模型值设置为父控制器中的模型

如何在angularjs中将子控制器中的模型值设置为父控制器中的模型,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我被困在一个应用程序中,在这个应用程序中,我有一个表,其中包含用于输入费用id值和金额的输入字段。amount元素绑定到一个自定义指令,通过点击ctrl+enter将添加一个包含空字段的新tr。现在提交时,我无法计算所有amount字段的总金额。这是标记 <table class="table table-bordered table-hover table-condensed"> <tr class="info" style="

我被困在一个应用程序中,在这个应用程序中,我有一个表,其中包含用于输入费用id值和金额的输入字段。amount元素绑定到一个自定义指令,通过点击ctrl+enter将添加一个包含空字段的新tr。现在提交时,我无法计算所有amount字段的总金额。这是标记

<table class="table table-bordered table-hover table-condensed">
                        <tr class="info" style="font-weight: bold">
                            <td>EXPENCE TYPE</td>
                            <td>AMT</td>
                        </tr>
                        <tr ng-repeat="expense in expenceentry">
                            <td>
                                <!-- editable username (text with validation) --> <span
                                editable-text="expense.expensetype_id"
                                ng-model="expense.expensetype_id"
                                e-name="expense.expensetype_id" e-form="expenceentryform"
                                e-required
                                e-typeahead="expense.expensetype_id as expense.expensetype_name for expense in expensetypes.record">
                            </span>
                            </td>
                            <td ng-controller="MyCtrl">
                                <input type="number" ng-model="expense.amount" on-keyup-fn="handleKeypress">
                            </td>
                        </tr>
                    </table>
自定义指令是

app.directive('onKeyup', function() {
return function(scope, elm, attrs) {
    function applyKeyup() {
      scope.$apply(attrs.onKeyup);
    };           

    var allowedKeys = scope.$eval(attrs.keys);
    elm.bind('keyup', function(evt) {
        //if no key restriction specified, always fire
        if (!allowedKeys || allowedKeys.length == 0) {
            applyKeyup();
        } else {
            angular.forEach(allowedKeys, function(key) {
                if (key == evt.which) {
                    applyKeyup();
                }
            });
        }
    });
};
})

此的父控制器是:

function expenseEntry($scope, $filter, $http,expense_type,expenseinsert,employee) {
    $scope.total="0.00";
      $scope.deliveryboys =employee.get();



     $scope.update=function(){
        // $scope.action="Add";
       var ret=expenseinsert.save($scope.expense);
       alert("Data inserted..!!!");
    };

    $scope.expensetypes=expense_type.get();

    $scope.addUser = function() {
        $scope.inserted = {
          expensetype_id:'',
          amount: null 
        };

        $scope.expenceentry.push($scope.inserted);

      };
      $scope.expenceentry = [
        {expensetype_id: '', amount: ''}

      ]; 

})

您的代码非常混乱,因为不清楚您实际需要什么信息

但无论如何,根据你文章的标题。您可以使用访问直接父控制器作用域

$scope.$parent.varName;
如果它不是直接父级,并且您不想使用$parent,那么您可以依赖作用域的继承。子作用域应该可以访问父作用域,除非它被声明为隔离作用域。请注意使用原语而不是对象进行数据绑定

这方面的巨大资源将是

$scope.$parent.varName;