2016-04-05 20 views
0

Bazen WPF'de (MVVM) bir UI denetiminin (View/Xaml) İki DataContexts olması, olur. Bu yüzden Bağlama İfadesi yapılırken ElementName özelliğini kullanırız, bu yüzden Bağlanan özelliği istenen DataContext'ten seçeriz.WPF'deki birden çok DataContexts gibi, angularjs bu yaklaşımı destekliyor mu?

Benim durumum: Angularjs ile bu tür bir durumumuz var mı? Aynı UI öğesi (Html ​​etiketi) için iki kapsam veya datacontexts/ng-modelleri (Whatever) kastediyorum.

function UserController($scope) { 
    $scope.currentUser = { 
     firstName: "John", 
     lastName: "Doe" 
    }; 
} 

function DocumentController($scope) { 
    $scope.document = { 
     title: "My Document", 
     pageCount: 123 
    }; 
} 

bir HTML ile belirli bir kontrolör ilişkilendirmek için:

+0

Bir WPF denetiminin iki veri içeriği nasıl olabilir? WPF ile yaklaşık 10 yıldır çalışıyorum ve hiç böyle bir şey görmedim. –

+0

Bu duruma neden olan çok fazla senaryo var. http://stackoverflow.com/questions/15498890/multiple-datacontext-for-one-control-mvvm. Bu onlardan biri. –

+0

Bu, birden fazla veri içeriğine sahip olan, başka bir denetimden veri içeriğine erişen bir denetim değildir. –

cevap

0

$scope değişken karşılık gelen HTML işaretlemesi kullanılan ifade bağlanma herhangi bir verinin kök oluşturmak için kullanılan bir .NET DataContext eşdeğerdir fragmanı, istenen denetleyiciye başvurmak için ng-controller özniteliğini eklemeniz gerekir.

<div ng-app ng-controller="UserController"> 
    First Name: <input type=text ng-model="currentUser.firstName"> <br> 
    Last Name: <input type=text ng-model="currentUser.lastName"><br> 
    Full Name: {{currentUser.firstName}} {{currentUser.lastName}} 
</div> 

<div ng-app ng-controller="DocumentController"> 
    Title: <input type=text ng-model="document.Title"> <br> 
    Page Count: <input type=text ng-model="document.pageCount"><br> 
</div> 
+0

Bu örnekte, ng denetleyicisinin DocumentController olduğu div için firstName görülmez. WPF'de ona bu yol ElementName ...... kullanarak erişebiliriz. Ya angularjs? –

+0

Anlayışım, yalnızca denetleyicideki özelliklere erişebilmenizdir, bu nedenle, kullanıcı görünümüne erişmek için JavaScript'deki belge denetleyicisine, ancak HTML –

+0

'dan diğer denetleyiciye erişemezsiniz. Xaml daha sonra seçenekler daha sonra angularjs direktifini verebilir mi? sağ ? –