Angularjs 如何获取自定义指令之外的输入值

Angularjs 如何获取自定义指令之外的输入值,angularjs,angularjs-directive,angular-ngmodel,Angularjs,Angularjs Directive,Angular Ngmodel,我需要获取指令(num1,num2)之外的输入值,以便在单击按钮时计算其中的结果(加法)。正确的方法是什么? 这是我的html <div ng-app="sumApp" > <div ng-controller='sumAppCtrl' > <input ng-model='num1' type='text' > <span>+</span> <input ng-model='num2' t

我需要获取指令(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' />"

}


})
var-sumApp=angular.module('sumApp',[]);
控制器(“sumAppCtrl”,函数($scope){
});
sumApp.指令('bpSum',函数(){
返回{
限制:'E',
控制器:
sumNumbers=函数(num1,num2){
var项目=[parseInt(num1),parseInt(num2)];
$scope.addition=\.reduce(项,函数(memo,num){return memo+num;},0);
},
模板:“”
}
})

根据我的说法..您应该像这样开发用于添加的组件

<div ng-app="sumApp" >
  <div ng-controller='sumAppCtrl' > 

    <bp-sum></bp-sum>

   </div>
</div> 

指令

    sumApp.directive('bpSum', function() {

    return {

        restrict: 'E',
        controller: function($scope) {

            $scope.sumNumbers = function(num1, num2) {

                var items = [parseInt(num1), parseInt(num2)];
                $scope.addition = _.reduce(items, function(memo, num) {
                    return memo + num;
                }, 0);
            };

        },
        template: " <input  name='num1' ng-model='num1' type='text'  >" +
            "<span>+</span>" +
            "<input   name='num2' ng-model='num2'  type='text'>" +
            "<span>=</span><input type='button' value='Sum' ng-click='sumNumbers(num1,num2)'' />"+
            "<label>Sum is : </label> <input type='text' ng-model='addition' />"


    };


});
sumApp.directive('bpSum',function(){
返回{
限制:'E',
控制器:功能($scope){
$scope.sumNumbers=函数(num1,num2){
var项目=[parseInt(num1),parseInt(num2)];
$scope.addition=\.reduce(项、函数(备注、数值){
返回备忘录+num;
}, 0);
};
},
模板:“”+
"+" +
"" +

“=根据我的说法..你应该像这样开发用于加法的组件

<div ng-app="sumApp" >
  <div ng-controller='sumAppCtrl' > 

    <bp-sum></bp-sum>

   </div>
</div> 

指令

    sumApp.directive('bpSum', function() {

    return {

        restrict: 'E',
        controller: function($scope) {

            $scope.sumNumbers = function(num1, num2) {

                var items = [parseInt(num1), parseInt(num2)];
                $scope.addition = _.reduce(items, function(memo, num) {
                    return memo + num;
                }, 0);
            };

        },
        template: " <input  name='num1' ng-model='num1' type='text'  >" +
            "<span>+</span>" +
            "<input   name='num2' ng-model='num2'  type='text'>" +
            "<span>=</span><input type='button' value='Sum' ng-click='sumNumbers(num1,num2)'' />"+
            "<label>Sum is : </label> <input type='text' ng-model='addition' />"


    };


});
sumApp.directive('bpSum',function(){
返回{
限制:'E',
控制器:功能($scope){
$scope.sumNumbers=函数(num1,num2){
var项目=[parseInt(num1),parseInt(num2)];
$scope.addition=\.reduce(项、函数(备注、数值){
返回备忘录+num;
}, 0);
};
},
模板:“”+
"+" +
"" +

"=是的,我知道这样做在逻辑上更明智,但我想知道的是,在指令之外获取值的方式主要是hot。是的,我知道这样做在逻辑上更明智,但我想知道的是,在指令之外获取值的方式主要是hot。现在还不清楚你在问什么。这个指令没有一个独立的作用域,是吗与其父级共享
$scope
。在这种情况下,
$scope.addition
应该在父级中的任何位置都可用。这不是设计指令的最佳方式,但这是该指令的设计方式。@Claies,问题是我的指令无法以这种方式定义num1和num2。它们是$scope上的属性,请尝试$scope。num1@Claies,感谢您的帮助,它可以工作,但仍有一些问题我必须自己解决。由于它没有隔离作用域,因此父数据很容易获得。如果数据不可用,则您可以处理broacasting事件并发送darait。您在这里问的问题并不清楚。此指令没有隔离作用域,它共享
$scope
及其父项。在这种情况下,
$scope.addition
应该在父项中的任何位置都可用。这不是设计指令的最佳方式,但这是该指令的设计方式。@Claies,问题是我的指令无法以这种方式定义num1和num2它们是$scope上的属性,请尝试$scope。num1@Claies,thanks需要帮助,但仍然有一些问题需要我自己解决。由于它没有隔离范围,因此父数据很容易获得。如果数据不可用,则可以处理broacasting事件并发送dara