如何让Angular使用scope作为数据模型来显示变量的字符串呢?
How can I get Angular to display the string of a variable using scope as a data model?
$scope.headers = {score: "test", gaps:"test2", strand:"test3"};
if (line.lastIndexOf("Score", 0) === 0 ) {
$scope.headers.score = line; }
当我输入{{headers时,我的视图现在显示"test"。HTML中的score}}。是否有办法得到{{headers。通过向作用域附加变量来显示字符串?
的例子:(var a = " blahkaldl ";因此,{{头。Score}}显示"blanhkaldl")
…我打了个喷嚏,按了个键,还按了空格键,提前发了。
这里有很多很多的解决方案。
你可能需要更具体地说明你真正想要完成的是什么。
你不需要给我们所有的东西,但是解决方案将取决于,我猜,你希望改变什么,你在哪里声明逻辑,以及你在模板中还有什么。
在你的模板中,你可以使用ng-if、ng-show或ng-switch来根据你是否想要改变元素的结构来改变元素:
$scope = {
isOpen : false,
article : { author : "", date : "", title : "", content : "" }
};
<article >
<h1>{{ article.title }}</h1>
<span ng-if="!isOpen" ng-click="isOpen = true">...show</span>
<p ng-if="isOpen">{{ article.content }}</p>
</article>
或者,你可以在插值中使用三元:
<p>{{ isOpen ? article.content : '...show' }}</p><button ng-click="isOpen = !isOpen">toggle</button>
当你的模型改变时,Angular也会更新你的视图。只要你在Angular内部进行更改(在Angular $http
调用之后,或者在Angular $timeout
中,或者当用户触发ng-click
时,等等),你就不需要做任何其他事情;Angular会检查你所有的作用域,看看发生了什么变化,并更新你的视图。
如果你做在Angular之外做更改:
xhr.onload = ...
button.onclick ...
window.onresize ...
setTimeout ...
在你的事件被触发后,你应该调用
$scope.$apply(function ($scope) { /* make changes in here */ });
或
$timeout(function ($scope) { /* change here, and Angular will start an $apply if one isn't already running */ });
"$apply"是实际运行它找到的所有更改并更新系统中所有连接位的阶段。
不调用$scope.$apply
的原因是$apply
周期有可能已经在运行中。
对Angular来说,明智的做法可能是将你的更改偷偷地放入$apply
,或者在它完成后立即安排另一个$apply,以包含你的新更改…
…相反,它会抛出一个错误,告诉你"apply已经在运行"。
如果你正在构建Angular,这对调试是有意义的,但当你只想把东西连接在一起时,这就没意义了…
所以请使用$timeout。
但是仅仅在你的函数作用域中有一个var
并不能解决这个问题。
它必须是你的$scope
或controller
或模板中的东西(如果你在模板中提到的值不在你的作用域中,Angular会把它们放在你的作用域中)。
驱动Angular的黑魔法很少;它的大部分只是遍历你所有的$作用域,并在一个循环(或一组循环)中检查每个作用域上的每个键/值["消化"阶段],然后更新所有其他正在监视这些变化的作用域/视图["应用"阶段],然后可能会启动另一轮的变化,等等,直到Angular可以在不改变任何值的情况下遍历每个$作用域。
$timeout()是当你在Digest/Apply周期之外改变了一些东西,而且它不是Angular理解的方法(ng-*、$http、$q等),所以Angular不会接收它,而你想给Angular一个提示,告诉它发生了一些重要的事情。
- 节点.js将变量显示为 HTML
- 使用eval()定义变量显示未定义的错误
- 将Flask中的变量显示为javascript代码时出错
- 为什么我的 ajaxurl 变量显示为未定义
- HTML 下拉列表到 Javascript 变量显示错误
- 变量显示为未定义
- ASP.Net Ajax - JavaScript:如何在HTML中使用返回的变量显示
- 如何使用变量显示来自 URL 的图像来创建 URL
- Javascript 实例变量显示为未定义
- 按图像计数变量显示图像列表
- 如何根据变量显示一定数量的输入字段
- 基于true/false变量显示/隐藏进度条
- Cognos Prompt页面提示使用render变量显示/隐藏
- 为什么变量显示为未定义
- javascript变量显示以前的值
- Firefox没有处理keyCode's.它在调试器中将变量显示为矩阵
- 为输入值设置变量显示对象对象消息
- 在angular.js中通过作用域变量显示或追加元素
- JavaScript -全局变量显示为未定义
- 如何使用javascript变量显示图像