我遇到了从视图内部绑定输入的问题.我认为它会绑定到控制器范围,但它似乎绑定到子范围,所以它不会在上面更新.
如果他们在ng-repeat中(我不知道为什么),其他项目会像我期望的那样绑定.
这是一个例子:http:
//jsfiddle.net/hMpsB/1/
如果输入不在ng-repeat中,那么将输入绑定到正确范围的最佳方法是什么?
为了掌握AngularJS,我决定使用其中一个示例,具体来说,只需在Todo示例中添加一个"完整"屏幕,当用户输入5个todos时,它使用一个switch-case切换到另一个div .代码可以在http://jsfiddle.net/FWCHU/1/获得,如果有任何用途的话.
但是,似乎每个switch-case都有自己的范围($ scope.todoText不可用),但是在这种情况下可以使用addTodo()中的"this"来访问它.到目前为止一切都那么好,但是我想要在switch-case之外访问todoText(在switch-case里面),我该怎么做呢?我是否可以将switch-case范围绑定到模型,是否可以通过其他方式访问,还是应该以其他方式解决?
PS.我不是要找到上面代码的任何解决方案,我很确定我知道如何在不使用switch-case的情况下解决它,我想了解范围在这种情况下如何工作!
请有人帮我解决这个小小的约束.我正在尝试生成一个任务列表
这是我的TaskController中的模型定义:
angular.module('yeomantestApp')
.controller 'TaskController', ($scope) ->
$scope.currentTask
$scope.tasks = [
{
id: 1
name: 'write test'
elapsedTime: 15
},
{
id: 2
name: 'run test'
elapsedTime: 32
},
{
id: 3
name: 'write code'
elapsedTime: 22
}
]
Run Code Online (Sandbox Code Playgroud)
所以,现在我想用以下视图渲染模型.视图迭代任务数组并为每个任务构建单选按钮列表.我的问题是,绑定到currentTask的模型在某种程度上不起作用.当我选择任何任务时,currentTask模型条目不会更新.但根据教程和文档应该.
<div class="hero-unit" ng-controller="TaskController">
<h1>Tasks</h1>
<h2>current {{currentTask}}</h2>
<form name="taskForm">
<div ng-repeat="task in tasks">
<input type="radio" name="taskGroup" ng-model="currentTask" value="{{task.id}}">{{task.name}} {{task.elapsedTime}}
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)