2016-04-09 10 views
-2

お手伝いできますか? 私はこの例をFiddleで見つけました。 http://jsfiddle.net/terebentina/9mFpp/Angular jsで変数を変更できません、なぜですか?

私の質問は、なぜ角度(この例では)

$scope.widget = {title: 'abc'}; // works very well and ... 
$scope.widget.title = 'abc'; // doesn't work 

にこれはJavascript(widget.title)内のオブジェクトのプロパティです。私はいつも考えていました - いつでも設定できますか?私はどこが間違っていますか?あなたが最初のオブジェクトを初期化する必要があるため

+0

定義する必要がありますか? – uzaif

+0

http://jsfiddle.net/9mFpp/1523/ – uzaif

答えて

0

秒が動作しない理由は次のとおりです。

// initialize the object first 
$scope.widget = {}; 

// and now you can set the title 
$scope.widget.title = 'abc'; 

をしかし、これは、コードの2行を入力します。直接これらの2つのことを行うために少し短いです:

// Initialize the widget object and set its title property 
$scope.widget = {title: 'abc'}; 
3

$scopeはオブジェクトですが、それが設定されるまで$scope.widgetは未定義です。あなたは、最初のオブジェクトとしてそれを初期化し、このようなプロパティ、設定することができ、次のいずれか

$scope.widget = {}; 
$scope.widget.title = 'abc'; 

それとも、フィドルが行うように行うと同時に、プロパティを初期化しながら、それを初期化することができます

$scope.widget = {title: 'abc'}; 
+0

私は実際にもっと多くの人々がいつかJavaScriptをもっと学ぶことを望むことを願っています。あまりにも多くの人々がまだそれについては少し知っているが、それを使って作業しています。 – tom10271

0

ウィジェットオブジェクトが定義されていないため(まだ存在しません)

次のコードはオブジェクト(フィールド 'title'に値 'abc'を含む)を作成し、変数 '$ scope.widget' :

次のコード
$scope.widget = {title: 'abc'}; 

は、「ウィジェット」オブジェクトの提出「タイトル」に「ABC」を割り当てます。

$scope.widget.title = 'abc'; 

あなたが最初のウィジェットを作成しましたので、ウィジェット変数を動作させるために