Angularjs 中的可观察量
Observables in Angularjs
我正在做一些练习来了解Angularjs是如何工作的......但我现在有点困惑...
遵循 API、各种文档和教程,我无法准确找到我想看到的内容......
所以我创建了一个小的JsFiddle:http://jsfiddle.net/8HqnZ/
我正在做的真的很基本...可能我也做得不好...但我正在学习,每个技巧对我来说都很棒。
我的目标是:
让一切动态...明显地。
- 我不明白为什么如果我更改顶部输入的名称或日期,我的红条不会更新(似乎无法观察到......
- 我还创建了一个获取数据按钮来查看我更新的 Json,但它返回的只是
[object, Object]
......
在我理解这两件事之后,我也想让它反转......我的意思是像可拖动的红色条一样的东西,它会更新顶部的日期......(如果可能的话)。
这是我的小应用程序:
function App($scope) {
$scope.windows = [
{"name":"First Window","from":"2013-11-05","to":"2013-11-21"},
{"name":"Second","from":"2013-11-10","to":"2013-11-30"},
{"name":"Another One","from":"2013-11-17","to":"2013-11-20"}
];
$scope.addWindow = function() {
$scope.windows.push({"name":"insert name","from":"2013-11-01","to":"2013-11-02"});
};
$scope.setWindow = function(from, to) {
var f = (from.split("-")[2]) * 40,
t = ((to.split("-")[2]) * 40) - f;
return { f: f, t: t };
};
$scope.getData = function() {
console.log($scope.windows);
};
};
HTML 看起来像这样(我切断了"日历"):
<div ng-app ng-controller="App">
<section id="window-data">
<div ng-repeat="window in windows">
<label>Name:<input value="{{window.name}}"></label> <label>From:<input type="date" value="{{window.from}}"></label> <label>To:<input type="date" value="{{window.to}}"></label>
</div>
<button id="add-window" ng-click="addWindow()">Add Window</button>
</section>
<section id="window-display">
<div id="date-labels">
<div class="block">
<span class="rotate">2013-11-01</span>
</div>
<div class="block">
<span class="rotate">2013-11-02</span>
</div>
...
</div>
<div id="windows">
<div class="window-container" ng-repeat="window in windows">
<span class="window" style="left:{{setWindow(window.from, window.to).f}}px; width:{{setWindow(window.from, window.to).t}}px">{{window.name}}</span>
</div>
</div>
</section>
<button id="get-data" ng-click="getData()">Get Data</button>
</div>
如果您知道具有简单而深入的文档,示例等的好网站,请与我分享。
我一直只是使用 Angular 站点进行文档。你看过他们的教程吗?
对于您的问题:您需要对这些输入使用 ng-model
,而不是设置值。
<input ng-model="window.name">
出现另一个问题是因为您正在尝试console.log
JSON。您需要将其转换为字符串以记录它:
console.log(JSON.stringify($scope.windows));
http://jsfiddle.net/8HqnZ/1/
1.
我不明白为什么如果我在顶部更改输入的名称或日期 我的红条没有更新(似乎无法观察到...
要进行 2 路数据绑定,您需要使用 ng-model具体来说,您需要这样做
`<input ng-model="window.name">`
而不是输入值为"window.name"
我还创建了一个获取数据按钮来查看我更新的 Json,但它返回 只是[对象,对象]...
这是意料之中的。
- 对于可拖动对象,您需要创建自定义角度 js 指令。
相关文章:
- AngularJS:使用$scope$以控制器作为语法进行观察
- 用于观察高度变化的AngularJS指令
- Angularjs - 观察模态窗口从另一个控制器关闭
- Angularjs 中的可观察量
- AngularJS:观察数组属性
- AngularJS观察指令属性表达式,动态继承作用域
- Angularjs观察用户在输入文本中键入逗号的情况
- 使用AngularJS观察整个对象(深度观察)
- 在jQuery数据表中使用AngularJS观察者的方法是什么
- angularjs如何为函数设置观察程序
- AngularJS:在没有$watch的情况下观察变量
- 观察元素位置并对 AngularJS 中的更改做出反应
- Knockout的可写计算在AngularJS中可观察的模拟是什么?
- 如何观察 DOM 的变化 AngularJS
- 如何在 angularjs 中观察对象中的对象
- Angularjs - $scope.$destroy 不会删除观察者
- 如何在 angularjs 服务中包装对象(并观察此对象的更改)
- AngularJS:观察身高变化的更好方法
- 观察 AngularJS 可观察量
- 观察AngularJS服务中数组的变化