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