Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 如果输入大于60个字符,请使用textarea_Angularjs - Fatal编程技术网

Angularjs 如果输入大于60个字符,请使用textarea

Angularjs 如果输入大于60个字符,请使用textarea,angularjs,Angularjs,我需要能够计数的字符输入使用角度 如果字符数大于60,则使用文本区域 我想我可以在我的脚本中这样做: //my initial display value $scope.display = "this is a particularly long string that i'm using to test this functionality"; //storing the length of the display variable $scope.charCount = $scope.disp

我需要能够计数的字符输入使用角度 如果字符数大于60,则使用文本区域

我想我可以在我的脚本中这样做:

//my initial display value
$scope.display = "this is a particularly long string that i'm using to test this functionality";
//storing the length of the display variable
$scope.charCount = $scope.display.length;
然后,我在
ng if
条件中使用
charCount
变量来确定是否使用
输入
文本区域

<div id="ctrl_{{field.id}}" ng-controller="controller" data-custom-focus="true" ng-if="charCount <= 60">
    <input
        type="text"
        ng-bind="display"
        ng-value="display">
</div>
<div id="ctrl_{{field.id}}" ng-controller="controller" data-custom-focus="true" ng-if="charCount > 60">
    <textarea
        type="text" 
        ng-bind="display"
        ng-value="display" >
    </textarea>
</div>

奇怪的是,这两个元素都没有呈现。我对Angular还不太熟悉,所以我不确定会出现什么问题

一些错误

  • 您在中使用了
    ng bind
    作为输入字段,这是 错误的使用方法

  • 删除表单divs
    ng controller=“controller”

在视图中使用和而不是使用
display.length
,因为如果

试试这个


var-app=angular.module('app',[]);
app.controller('OneController',函数($scope){
$scope.display='ssss'
$scope.changedInput=函数(参数){
}
});
{{aa}}
计数:{display.length}
一些错误

  • 您在中使用了
    ng bind
    作为输入字段,这是 错误的使用方法

  • 删除表单divs
    ng controller=“controller”

在视图中使用和而不是使用
display.length
,因为如果

试试这个


var-app=angular.module('app',[]);
app.controller('OneController',函数($scope){
$scope.display='ssss'
$scope.changedInput=函数(参数){
}
});
{{aa}}
计数:{display.length}

将控制器用于父范围

您可以像这样使用它:

<div ng-controller="MyCtrl">
<div data-custom-focus="true" ng-if="charCount => 60">
    <input
        type="text"
        ng-bind="display"
        ng-value="display">
</div>
<div data-custom-focus="true" ng-if="charCount < 60">
    <textarea
        type="text" 
        ng-bind="display"
        ng-value="display" >
    </textarea>
</div>
</div>

将控制器用于父范围

您可以像这样使用它:

<div ng-controller="MyCtrl">
<div data-custom-focus="true" ng-if="charCount => 60">
    <input
        type="text"
        ng-bind="display"
        ng-value="display">
</div>
<div data-custom-focus="true" ng-if="charCount < 60">
    <textarea
        type="text" 
        ng-bind="display"
        ng-value="display" >
    </textarea>
</div>
</div>

只需从两个元素中删除
ng controller=“controller”
。它应该会起作用

 <div id="ctrl_{{field.id}}" data-custom-focus="true" ng-if="charCount <= 60">
    <input type="text" ng-bind="display" ng-value="display">
  </div>
  <div id="ctrl_{{field.id}}" data-custom-focus="true" ng-if="charCount > 60">
    <textarea type="text" ng-bind="display" ng-value="display">
    </textarea>
  </div>


只需从两个元素中删除
ng controller=“controller”
。它应该会起作用

 <div id="ctrl_{{field.id}}" data-custom-focus="true" ng-if="charCount <= 60">
    <input type="text" ng-bind="display" ng-value="display">
  </div>
  <div id="ctrl_{{field.id}}" data-custom-focus="true" ng-if="charCount > 60">
    <textarea type="text" ng-bind="display" ng-value="display">
    </textarea>
  </div>


您可以使用一个
ng控制器
,并将输入/文本区域的条件置于该控制器的范围内

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.display=“这是我用来测试此功能的一个特别长的字符串”;
//存储显示变量的长度
$scope.charCount=$scope.display.length;
});

您可以使用一个
ng控制器
,并将输入/文本区域的条件置于该控制器的范围内

var-app=angular.module('myApp',[]);
应用程序控制器('myCtrl',函数($scope){
$scope.display=“这是我用来测试此功能的一个特别长的字符串”;
//存储显示变量的长度
$scope.charCount=$scope.display.length;
});





为什么不在所有情况下都使用textarea,如果长度超过60,则在textarea中添加一行?这很有效。看这里@Satpal,因为我需要在两种情况下引用相同的控制器。我不是一个角度专家,所以如果你能建议一个更好的方法,我将不胜感激。
ng controller
将创建一个新的范围,因此永远不会有两个实例same@Satpal谢谢你的建议,从长远来看,这对学习一门新语言很有帮助。你为什么不在所有情况下都使用textarea,如果长度超过60,你在文本区添加了一行吗?它正在工作。看这里@Satpal,因为我需要在两种情况下引用相同的控制器。我不是一个角度专家,所以如果你能建议一个更好的方法,我将不胜感激。
ng controller
将创建一个新的范围,因此永远不会有两个实例same@Satpal谢谢你的建议,从长远来看,这对学习一门新语言是有帮助的。在这里没有任何区别。我们也可以使用
charCount
。@AmitKumar那是我的错。现在检查我的答案:)这里没有任何区别。我们也可以使用
charCount
。@AmitKumar那是我的错。现在检查我的答案:)就是这样,我没有意识到你不能引用同一个控制器两次。Cheers@MasterYoda祝您愉快师父:)就是这样,我没想到您不能引用同一个控制器两次。Cheers@MasterYoda祝您愉快大师:)干杯,Vivz我还没意识到您只需要引用控制器一次。@MasterYoda是的,声明一次,并将所有必需的代码放在该控制器的范围内就可以了。无论如何,很高兴能提供帮助:)干杯,Vivz我没有意识到你只需要引用控制器一次。@MasterYoda是的,声明一次并将所有必需的代码放在这个控制器的范围内就可以了。无论如何,很高兴能帮上忙:)谢谢你的帮助。你的建议真的很有帮助。谢谢你的帮助。你的建议真的很有帮助。