AngularJs的select的回显问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJs的select的回显问题相关的知识,希望对你有一定的参考价值。

<select ng-model="data.classify" class="form-control" /> 这个select的options是二级的,是通过js函数加载的。是new Option(aa, bb) 这样加载的。但是当后端传过来 data.classify = aa 的时候 该option不选中。。。。求解。。

数据类型不对,select的option值是int,你用js做下类型转换即可 参考技术A

不知道你的的aa及其一些数据格式是什么样的,下面是选中的例子看下:

<!DOCTYPE html>
<html ng-app>
<head>
<title>angular-selected</title>
</head>
<body ng-controller="TestCtrl">
<select ng-model="color" ng-options="c.name for c in colors"></select>

<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript">
function TestCtrl($scope)
   $scope.colors = [
name:'black', shade:'dark',
name:'white', shade:'light',
name:'red', shade:'dark',
name:'blue', shade:'dark',
name:'yellow', shade:'light'
    ];
    $scope.color = $scope.colors[2];

</script>
</body>
</html>

追问

不是。我的数据是后台从数据库传递过来的。是编辑数据的时候出现的问题。就是$scope中已经有这个字段的值。只不过这个select是在页面上通过js函数增加的。结果就选不中了。要是这些option是写死的。就没事。

bash脚本中的回显制表符

【中文标题】bash脚本中的回显制表符【英文标题】:Echo tab characters in bash script 【发布时间】:2010-10-06 06:25:55 【问题描述】:

如何使用 bash 脚本回显一个或多个制表符? 当我运行这段代码时

res='       'x # res = "\t\tx"
echo '['$res']' # expect [\t\tx]

我明白了

res=[ x] # that is [<space>x]

【问题讨论】:

【参考方案1】:
echo -e ' \t '

将回显“空格制表符空格换行符”(-e 表示“启用反斜杠转义解释”):

$ echo -e ' \t ' | hexdump -C
00000000  20 09 20 0a                                       | . .|

【讨论】:

谢谢约翰内斯。你帮我找到了这个解决方案: res='\t\t'x; echo -e '['$res']' 你知道吗,为什么 echo -e 在 Makefile 中不起作用? 那是因为echo -e 不是POSIX 并且make 调用/bin/sh 这通常不是程序使用交互使用,并且通常没有实现-e。为了便于携带,请改用printf '\t' 在达尔文 (macOS) 中,echo 命令的man 页面未提及选项-e。但是,此选项被接受。【参考方案2】:

你需要使用 -e 标志来回显然后你可以

echo -e "\t\t x"

【讨论】:

【参考方案3】:

将您的字符串放在 引号之间:

echo "[$res]"

【讨论】:

这里相同 - 这是我首先尝试的。 -e 虽然效果很好 @kmkaplan 在 zsh 中为我工作 - 在 bash 中对我失败【参考方案4】:

使用 echo 打印变量的值是一个常见的 Bash 陷阱。 参考链接:

http://mywiki.wooledge.org/BashPitfalls#echo_.24foo

【讨论】:

酷,我喜欢“BashPitfalls”,很棒的材料,减轻了我日常工作中的很多痛苦! +1 因为这太真实了。但请注意,kalyanji 字符串以“[”开头,并且不包含任何“\”。【参考方案5】:

你也可以试试:

echo Hello$'\t'world.

【讨论】:

+1 以获得更通用的解决方案。我已经使用 bash 多年了,现在才学会这个! 这比公认的答案更通用,因为它可以在没有回声的情况下使用。 这似乎也有效:$'Hello\tWorld'【参考方案6】:

如果你想在脚本中使用echo "a\tb",你可以将脚本运行为:

# sh -e myscript.sh

或者,您可以给 myscript.sh 执行权限,然后运行脚本。

# chmod +x myscript.sh
# ./myscript.sh

【讨论】:

【参考方案7】:

使用printf,而不是echo

echo 命令有多个不同版本。有/bin/echo(可能是也可能不是GNU Coreutils 版本,具体取决于系统),并且echo 命令内置在大多数shell 中。不同的版本有不同的方式(或没有方式)来指定或禁用控制字符的转义。

另一方面,printf 的变化要小得多。它可以作为命令存在,通常是/bin/printf,并且它内置在一些 shell 中(bash 和 zsh 有它,tcsh 和 ksh 没有),但是各种版本彼此之间的相似性远高于 @ 的不同版本987654328@ 是。而且您不必记住命令行选项(除了少数例外;GNU Coreutils printf 接受 --version--help,内置 bash printf 接受 -v var 以将输出存储在变量中)。

你的例子:

res='           'x # res = "\t\tx"
printf '%s\n' "[$res]"

现在是时候让我承认echo 对于您所询问的示例同样有效;你只需要在参数周围加上双引号:

echo "[$res]"

正如 kmkaplan 所写(两年半前,我才注意到!)。您原始命令的问题:

res='           'x # res = "\t\tx"
echo '['$res']' # expect [\t\tx]

不在echo;就是在echo 看到它之前,shell 用空格替换了标签。

echo 适用于简单的输出,例如echo hello world,但是当你想做更复杂的事情时,你应该使用printf。您可以echo 工作,但是当您使用不同的echo 实现或不同的shell 运行它时,生成的代码可能会失败。

【讨论】:

我喜欢这个,它让我可以使用 printf 的知识和所有的格式说明符。 @JezenThomas:它没有得到更多的支持,因为它以不同于要求的方式回答了这个问题。题中特别提到了echo,echo不是动词而是命令。 @PauloNeves:我想说它在问题中用作动词:“我如何使用 bash 脚本回显一个或多个制表符?”【参考方案8】:

来自 bash 手册页:

$'string' 形式的单词被特殊处理。单词扩展为字符串,并按照 ANSI C 标准的规定替换反斜杠转义字符。

所以你可以这样做:

echo $'hello\tworld'

【讨论】:

为什么这在 cli 中有效,但在 bash 脚本中无效? @Freek 它对我有用——也许将你的脚本作为一个单独的问题发布在它不起作用的地方?【参考方案9】:
res="\t\tx"
echo -e "[$res]"

【讨论】:

【参考方案10】:

使用逐字按键,^VCTRL+VC-v随便)。

当您在终端(或在大多数 Unix 编辑器中)键入 ^V 时,将采用以下字符逐字。您可以使用它在要回显的字符串中键入文字制表符。

类似以下的工作:

echo "^V<tab>"     # CTRL+V, TAB

Bash docs (q.v., "quoted-insert")

带引号的插入 (C-q, C-v) 将您键入的下一个字符逐字添加到该行中。例如,这就是插入 C-q 等键序列的方法。

旁注:据此, ALT+TAB 应该做同样的事情,但我们都将该序列绑定到窗口切换,所以我们不能使用它

制表符插入 (M-TAB) 插入制表符。

--

注意:您可以将此策略用于各种不寻常的字符。就像一个回车:

echo "^V^M"        # CTRL+V, CTRL+M

这是因为回车是 ASCII 13,而 M 是字母表的第 13 个字母,所以当你输入 ^M 时,你会得到第 13 个 ASCII 字符。您可以使用ls^M 在一个空提示符处看到它的运行情况,这将插入一个回车符,使提示符的行为就像您按回车一样。当这些字符被正常解释时,verbatim 让你得到文字字符。

【讨论】:

希望我能给你更多的赞成票。在这种情况下,我不想在我的论点中使用 -e ,这很好用。谢谢! "...大多数 Unix 编辑器"?尝试使用 vi 和 emacs 输入它,但都没有给出预期的结果。 太酷了!并在尝试使用 grep 捕获包含 tab 字符的行时节省了我的时间。

以上是关于AngularJs的select的回显问题的主要内容,如果未能解决你的问题,请参考以下文章

如何实现下拉框(select)的回显

angularJS 修改操作select回显选中的数据

关闭终端中的回显 - Golang

二维json数组的回显部分

为啥“stty -echo”没有关闭 macOS 上的回显位

所有记录的回显[标签] php api