Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 具有md自动完成功能的角度材质md芯片:未找到事件md无法与md转换芯片一起工作_Angularjs_Angular Material - Fatal编程技术网

Angularjs 具有md自动完成功能的角度材质md芯片:未找到事件md无法与md转换芯片一起工作

Angularjs 具有md自动完成功能的角度材质md芯片:未找到事件md无法与md转换芯片一起工作,angularjs,angular-material,Angularjs,Angular Material,我正在使用Angular Material v1.0.7,我在使用md芯片时遇到问题: 在md芯片中,我使用md自动完成(…)。以下是我的情况: -当用户在md自动完成中输入vaue时,如果没有项目,用户可以按Enter键创建新芯片。另一种方式是,如果没有项目,md not found将显示“没有适合的项目,请单击此处添加新项目”。在控制器中,我可以捕捉到当用户单击文本“没有适合的项目,单击此处添加新项目”时的事件。但当我调用函数md转换芯片时(我希望我的用户单击文本“没有适合的项目,单击此处添

我正在使用Angular Material v1.0.7,我在使用md芯片时遇到问题:

在md芯片中,我使用md自动完成(…)。以下是我的情况: -当用户在md自动完成中输入vaue时,如果没有项目,用户可以按Enter键创建新芯片。另一种方式是,如果没有项目,md not found将显示“没有适合的项目,请单击此处添加新项目”。在控制器中,我可以捕捉到当用户单击文本“没有适合的项目,单击此处添加新项目”时的事件。但当我调用函数md转换芯片时(我希望我的用户单击文本“没有适合的项目,单击此处添加新项目”与按Enter键相同),它不起作用

这是代码笔:

codepen.io/DieuNQ/pen/oxoNVe?editors=1010
有什么想法吗


谢谢

这里有一个可能适合您的黑客程序,因为我们正在使用
md auto complete
我们目前没有办法告诉
md auto complete
在单击
md not found
元素时添加
芯片

hack:根据这个指令,我们在窗口中查找
点击
,然后添加一个新项目作为芯片

.directive('mdChips', function($timeout) {
  return {
    restrict: 'E',
    require: 'mdChips', // Extends the original mdChips directive
    link: function(scope, element, attributes, mdChipsCtrl) {

      var mouseUpActions = [];

      mdChipsCtrl.onInputBlur = function(event) {
        this.inputHasFocus = false;

        mouseUpActions.push((function() {
          var chipBuffer = this.getChipBuffer();
          if (chipBuffer != "") { // REQUIRED, OTHERWISE YOU'D GET A BLANK CHIP
            this.appendChip(chipBuffer);
            this.resetChipBuffer();
          }
        }).bind(this));
      };

      window.addEventListener('click', function(event) {
        while (mouseUpActions.length > 0) {
          var action = mouseUpActions.splice(0, 1)[0];
          $timeout(function() {
            $timeout(action);
          });
        }
      }, false);
    }
  }
})

这是答案。

请确保您的提问方式在您的问题不清楚时其他人都能理解。您可以打开此代码笔。当您在文本框中输入文本并按“回车”键时,将创建一个新芯片。我只想:当用户在文本框中输入文本并单击“找不到。单击此处添加”对话框-->时,当用户按EnterHi@Rishab777:谢谢时,它将创建一个新的芯片。成功了。只有一个问题:在文本框中插入-->单击外侧-->单击文本,然后将文本添加到新芯片中。我有另一个解决方案:当用户单击“未找到对话框”时,我们触发事件键并按Enter键。看起来这个解决方案更好。然而,我今天试过了,但没有成功。但是我认为它应该会起作用。你能稍微修改一下并做需要的事情吗?但是我觉得上面的指令应该符合你的要求。将问题标记为已回答并结束问题。