2015-11-15 25 views
2

據我所知,the guide on scopes,我應該能夠在一個DOM元素,如一個div的宿主(相對於全球承載ng-app屬性在HTML標籤)。只有一個應用程序在DOM中工作

它似乎適用於第一個應用程序,但不適用於其他應用程序。我有以下示例,我期望AppUnoAppDuo能夠正常工作,而AppTri會失敗。但情況是,只有第一個行爲像預期的那樣。

<body> 
    <div ng-app="AppUno">Uno {{someHolder}}!</div> 
    <div ng-app="AppDuo">Duo {{someHolder}}!</div> 
    <div ng-app="AppTri">Tri {{someHolder}}!</div> 
</body> 

var uno = angular.module('AppUno', []); 
var duo = angular.module('AppDuo', []); 

uno.run(function ($rootScope) { 
    $rootScope.someHolder = "Blipp"; 
}); 

duo.run(function ($rootScope) { 
    $rootScope.someHolder = "Blopp"; 
}); 

我誤解了條塊分割範式嗎?這是我的眼睛拒絕看到的語法錯誤嗎?還要別的嗎?

輸出如下。

Uno Blipp!
Duo {{someHolder}}!
Tri {{someHolder}}!

+0

@maioman啊哈,明白了。您可能想將其作爲回覆發佈,以便它可以成爲可接受的答案。如果你在一個簡短的例子和一個或兩個鏈接上發佈,它更好(+1,隊友,+1 - 我知道你想要它,嘿嘿)。 –

+0

同樣來自文檔它實際上可能在一個HTML文檔中有多個應用程序但是:要在HTML文檔中運行多個應用程序,您必須使用angular.bootstrap手動引導它們而不是 –

+0

@MikeCheel請原諒,如果我混淆命名法這裏。我雖然我**是引導**通過實施發送到* xxx.run(...)*方法的功能。我不是嗎? –

回答

1

問題是你只能有一個ng-app指令;

您可以運行多個應用程序,但只有一個可以使用ng-app自舉(對於其他應用程序,您需要使用angular.bootstrap手動引導它們)。


至於劃分模式是關注有許多方法來創建子作用域,使用你的結構,你可以考慮NG-控制器。

相關問題