Burada sorun şu ki hala jQuery tarzı bir şekilde şeyler yapmaya çalışıyorum. Bunun daha açısal bir yaklaşıma ihtiyacı var.
Orada bu ele verebilir birkaç yolu vardır ancak doğru yolu vb uygulamanızın işlevselliği/düzeni/stil bağlıdır
Seçenek 1: sizin uygulamasında kullanarak yönlendirme/eyaletler ise Bir kontrolör ile basit bir yol kullanabilirsiniz. soyut rotanın kumanda içinde değişken veri ekleme iç içe yolları
o $ scope.your.variable
(app.js) miras
.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$stateProvider
.state('exampleState', {
url: '/example',
abstract: true,
templateUrl: 'templates/example/root-view.html',
controller: 'ParentCtrl'
})
.state('stats.games', {
url: '/games',
views: {
'stats-games':{
templateUrl: 'templates/example/firstpage.html',
controller: 'PageOneCtrl'
}
}
})
.state('stats.games', {
url: '/games',
views: {
'stats-games':{
templateUrl: 'templates/example/secondpage.html',
controller: 'PageTwoCtrl'
}
})
});
(controller.js) neden olur
.controller('ParentCtrl', function($scope) { $scope.myValues = { value1:"some value", value2:"some other value" } }) .controller('PageOneCtrl', function($scope) { $scope.message = $scope.myValues.value1 }) .controller('PageTwoCtrl', function($scope) { $scope.message = $scope.myValues.value2 })
(firstpage.html veya seccondpage.html)
<ion-view view-title="First/Second Page">
<ion-content>
<div id="mainMessage">{{message}}</div>
</ion-content>
</ion-view>
Seçenek 2: Bunun gibi özel bir yönergeye sahip olabilir ve verileri gereksinimlerinize göre değiştirebilirsiniz. Bu örnek DOM'ınızı modifiye etmenin iki yolunu göstermektedir.
.directive("mydirective", function(){
return {
template: "<h1>Hi, ...</h1>", // or use an html file here
replace: true,
restrict: 'A',
scope: false, //default
link: function(scope, element, attrs){
console.log([scope],[element],[attrs]);
console.log(scope.myValues.value1);
/// use element from here
// do something...
// element.append("hello <br>")
}
}
});
ve sonra .html dosyasında Eğer
<div mydirective> </div>
Seçenek 3 şunlardır: Buangularjs görünümler ... Hizmetler veya fabrika arasındaki içerik/veri paylaşımını benim favori yolu inanılmazlar.
.controller('yourPageCtrl', function($scope, myDataService) {
$scope.myData = myDataService;
$scope.message = "Hi "+$scope.myData.dataSetOne.name;
// do something here
});
: Sadece hizmeti ve bağımlılık enjeksiyonu içerir emin olun sizin denetleyicisi sonra .service("myDataService", function() {
var myData = {
dataSetOne: {
name: "John Doe",
message: "hi, John",
other: "misc info"
},{
dataSetTwo: {
name: "John Doe",
message: "hi, John",
other: "misc info"
}
}
})
: Bir hizmeti oluşturun ve birkaç denetleyicileri verilerine anında paylaşılan erişim için enjekte ve modül kontrolör
ve DOM şu şekilde görünecektir: tüm başka başarısız olursa
<div id"someID">{{message}} </div>
Son ve en kötü seçenek, $ rootScope kullanmaktır. Bu yaklaşımı gerçekten tavsiye etmiyorum ve bu yüzden gerekirse araştırmak için size bırakacağım.
Bu yardımcı olur umarım.
Bu [yanıta bakın] (http://stackoverflow.com/questions/34251243/how-to-add-html-code-dynamically-to-ion-content/34261287#34261287) HTML'de dinamik şablon sayfası ekledi . –