Saya memiliki rute modul ini:
var mainModule = angular.module('lpConnect', []).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/home', {template:'views/home.html', controller:HomeCtrl}).
when('/admin', {template:'views/admin.html', controller:AdminCtrl}).
otherwise({redirectTo:'/connect'});
}]);
Beranda HTML:
<div ng-include src="views.partial1"></div>
partial1
HTML:
<form ng-submit="addLine()">
<input type="text" ng-model="lineText" size="30" placeholder="Type your message here">
</form>
HomeCtrl
:
function HomeCtrl($scope, $location, $window, $http, Common) {
...
$scope.views = {
partial1:"views/partial1.html"
};
$scope.addLine = function () {
$scope.chat.addLine($scope.lineText);
$scope.lines.push({text:$scope.lineText});
$scope.lineText = "";
};
...
}
Dalam addLine
fungsi $scope.lineText
ini undefined
, ini dapat diatasi dengan menambahkan ng-controller="HomeCtrl"
ke partial1.html
, namun hal itu menyebabkan controller untuk dipanggil dua kali. Apa yang kulewatkan di sini?
sumber
$parent.$parent...
untuk membuatnya bekerja. Dengan kata lain, menggunakan$parent
membuat asumsi tentang struktur DOM.Alih-alih menggunakan
this
seperti saran yang diterima, gunakan$parent
sebagai gantinya. Jadi di dalam kamu,partial1.html
kamu akan memiliki:Jika Anda ingin mempelajari lebih lanjut tentang ruang lingkup dalam
ng-include
atau arahan lain, lihat ini: https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-includesumber
$scope.$parent
alih-alih$parent
tidak ditentukan menurut Angular.$scope.$parent
bekerja untuk saya di sudut 1.3.20Saya telah menemukan cara untuk mengatasi masalah ini tanpa mencampurkan data induk dan sub lingkup. Setel
ng-if
padang-include
elemen dan setel ke variabel lingkup. Sebagai contoh :Di controller Anda, ketika Anda telah mengatur semua data yang Anda butuhkan di sub lingkup Anda, kemudian atur show to
true
. Theng-include
akan menyalin pada saat ini kumpulan data dalam lingkup Anda dan meletakkannya di sub lingkup Anda.Aturan praktisnya adalah untuk mengurangi data lingkup yang lebih dalam lingkup, jika tidak, Anda memiliki situasi ini.
Maks
sumber