【发布时间】:2016-02-08 11:11:36
【问题描述】:
我需要在指令(num1,num2) 之外获取输入值,以便在单击按钮时计算其中的结果(加法)。正确的方法是什么? 这是我的html
<div ng-app="sumApp" >
<div ng-controller='sumAppCtrl' >
<input ng-model='num1' type='text' >
<span>+</span>
<input ng-model='num2' type='text'>
<span>=</span>
<bp-sum></bp-sum>
<input type="button" value="Sum" ng-click="sumNumbers(num1,num2)" />
</div>
</div>
还有js代码:
var sumApp = angular.module('sumApp', []);
sumApp.controller("sumAppCtrl", function ($scope) {
});
sumApp.directive('bpSum',function( ){
return {
restrict:'E',
controller:
sumNumbers = function(num1,num2){
var items=[parseInt(num1),parseInt(num2)];
$scope.addition = _.reduce(items, function(memo, num){ return memo + num; }, 0);
},
template:"<input type='text' ng-model='addition' />"
}
})
【问题讨论】:
-
不太清楚你在这里问什么。该指令没有隔离范围,它与它的父级共享
$scope。在这种情况下,$scope.addition应该在父级中的任何位置可用。这并不是设计指令的最佳方式,但它就是这样设计的。 -
@Claies,问题是我的指令不能这样定义 num1 和 num2
-
它们是 $scope 上的属性,试试 $scope.num1
-
@Claies,感谢您的帮助,它有效,但仍有一些问题我必须自己解决。
-
由于它没有隔离范围,因此父数据很容易获得。如果数据不可用,那么您可以处理广播事件和发送 dara
标签: angularjs angularjs-directive angular-ngmodel