Javascript 将指令中的值传递给ng模型-安格拉斯

Javascript 将指令中的值传递给ng模型-安格拉斯,javascript,angularjs,Javascript,Angularjs,嗨,我正在尝试创建一个指令,向我的ng模型传递一些值, 在我的指令中,我在指令中有一个控制器,我想在ng模型中传递它的值 假设我有一个字符串值,当我单击$scope.speakUP时,它应该传递给ng模型 .directive('speak', function(){ return { restrict: 'A', require: 'ngModel', scope: true,

嗨,我正在尝试创建一个指令,向我的ng模型传递一些值, 在我的指令中,我在指令中有一个控制器,我想在ng模型中传递它的值

假设我有一个字符串值,当我单击$scope.speakUP时,它应该传递给ng模型

.directive('speak', function(){
          return {
            restrict: 'A',
             require: 'ngModel',
            scope: true,
            template: '<i ng-click = "speakUP()" class="icon ion-mic-a larger"></i>',

            controller: function($scope, $element){
             $scope.speakUP = function(){

                     $scope.passThisString = "Sample Data";

                 }

        }
指令('speak',函数(){ 返回{ 限制:“A”, 要求:'ngModel', 范围:正确, 模板:“”, 控制器:函数($scope$element){ $scope.speakUP=函数(){ $scope.passThisString=“示例数据”; } } 这是我的HTML

  <input type="text" ng-model="sampleModel" speak>

这是一个快速的示例,您可以从中开始实施您的目标

 app.directive('inputField', function () {
    return {
        require: '?ngModel',
        template: '<input ng-model="value" ng-change="onChange()"><i ng-click="speakUP()" class="icon ion-mic-a larger">click</i>',
        link: function ($scope, $element, $attrs, ngModel) {
            if (!ngModel) return;

            $scope.speakUP = function(){
              ngModel.$setViewValue('your data');
              ngModel.$render(); 
            }

           $scope.onChange = function() {
             ngModel.$setViewValue($scope.value);
           };

           ngModel.$render = function() {
             $scope.value = ngModel.$modelValue;
           };
        }
    };
});
应用程序指令('inputField',函数(){ 返回{ 要求:“?ngModel”, 模板:“单击”, 链接:函数($scope、$element、$attrs、ngModel){ 如果(!ngModel)返回; $scope.speakUP=函数(){ ngModel.$setViewValue(“您的数据”); ngModel.$render(); } $scope.onChange=函数(){ ngModel.$setViewValue($scope.value); }; ngModel.$render=function(){ $scope.value=ngModel.$modelValue; }; } }; }); HTML


这是一个快速的示例,您可以从中开始实施您的目标

 app.directive('inputField', function () {
    return {
        require: '?ngModel',
        template: '<input ng-model="value" ng-change="onChange()"><i ng-click="speakUP()" class="icon ion-mic-a larger">click</i>',
        link: function ($scope, $element, $attrs, ngModel) {
            if (!ngModel) return;

            $scope.speakUP = function(){
              ngModel.$setViewValue('your data');
              ngModel.$render(); 
            }

           $scope.onChange = function() {
             ngModel.$setViewValue($scope.value);
           };

           ngModel.$render = function() {
             $scope.value = ngModel.$modelValue;
           };
        }
    };
});
应用程序指令('inputField',函数(){ 返回{ 要求:“?ngModel”, 模板:“单击”, 链接:函数($scope、$element、$attrs、ngModel){ 如果(!ngModel)返回; $scope.speakUP=函数(){ ngModel.$setViewValue(“您的数据”); ngModel.$render(); } $scope.onChange=函数(){ ngModel.$setViewValue($scope.value); }; ngModel.$render=function(){ $scope.value=ngModel.$modelValue; }; } }; }); HTML



可能的重复我无法理解这背后的想法,但这是完全错误的。您不能将输入用作容器并为其设置模板。@YordanNikolov抱歉..但您能帮助我什么是替代方法吗?可能的重复我无法理解这背后的想法,但这是完全错误的。您不能将输入用作容器和模板为它设置一个模板。@YordanNikolov抱歉..你能帮我什么是替代方法吗?