我剛剛開始接觸角和想我會是最好的關閉直接進入角2.元素更新在角2
我讀過幾個地方使我相信角「神奇地「更新組件模型更改時的dom。以下報價是從http://victorsavkin.com/post/118372404541/the-core-concepts-of-angular-2(更新於1月4日,因此應該是最新的)。
Host元素
要打開的角度成分成在DOM渲染你有角狀的部件與DOM元素相關聯的東西。我們稱這些元素爲主元素。
組件可以通過以下方式與其宿主DOM元素進行交互:*它可以偵聽其事件。 *它可以更新其屬性。 *它可以調用它的方法。
例如,組件使用hostListeners偵聽輸入事件,修剪該值,然後將其存儲在字段中。 Angular會將存儲的值與DOM同步。
[刪除代碼]
注意,我實際上並不直接與DOM的互動。 Angular 2旨在提供更高級別的API,因此本地平臺DOM將僅反映Angular應用程序的狀態。
所以,我的代碼:
(function(app) {
app.topMenu =
ng.core.Component({
selector: 'top-menu',
template: '<span>{{time}}</span>'
})
.Class({
constructor: function() {
this.time = 'Never Changes';
setInterval(function() {
var listeners = document.getElementsByClassName('time');
var currentTime = new Date(Date.now());
var options = {
hour12: 'true',
weekday: 'long',
month: 'long',
day: 'numeric',
year: 'numeric'
}
this.time = currentTime.toLocaleTimeString('en-us',options);
console.log(this.time);
}, 1000);
}
});
document.addEventListener('DOMContentLoaded', function() {
ng.platform.browser.bootstrap(app.topMenu);
})
})(window.app || (window.app = {}));
的問題是,DOM的初始頁面加載後就再也沒有更新,而控制檯愉快蜱一起。我需要添加什麼來使DOM將其內容更新爲模型的更改?
的
this
關鍵字如果代碼是不是「角辦法」,我會爲指針感到高興。對於我來說,這是Angular的第2天,現在我試圖堅持JS而不是TypeScript。 – Josiah說到「角度的方式」,我還得到了我的腳溼2角,認爲這是值得在Typescript中做。很多混亂消失。像'=>'運算符這樣的細節通過在有回調的時候以更簡單的方式使'this'變得更容易,從而可以節省很多的痛苦。在你的例子中,檢查你的'setInterval'回調中的'this.time'是你認爲的。 –
這不是Angular2的方式。由於這個原因,他們確實在推動TypeScript,因爲我一直使用TypeScript的Angular2,而且你的代碼現在看起來很陌生。 – inoabrian