Tengo este módulo de rutas:
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'});
}]);
Inicio 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 = "";
};
...
}
En la addLine
función $scope.lineText
es undefined
, esto se puede resolver agregando ng-controller="HomeCtrl"
a partial1.html
, sin embargo, hace que se llame dos veces al controlador. ¿Que me estoy perdiendo aqui?
fuente
$parent.$parent...
para que funcione. Dicho de otra manera, el uso$parent
hace suposiciones sobre la estructura DOM.En lugar de usar
this
como sugiere la respuesta aceptada, use$parent
en su lugar. Entonces en tupartial1.html
tendrás:Si desea obtener más información sobre el alcance
ng-include
u otras directivas, consulte esto: https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-includefuente
$scope.$parent
lugar de$parent
está indefinido según Angular.$scope.$parent
que funciona para mí en angular 1.3.20He descubierto cómo solucionar este problema sin mezclar datos primarios y secundarios. Establezca a
ng-if
en elng-include
elemento y configúrelo en una variable de ámbito. Por ejemplo :En su controlador, cuando haya configurado todos los datos que necesita en su sub ámbito, luego configure show en
true
. Enng-include
este momento, copiará el conjunto de datos en su ámbito y lo establecerá en su sub ámbito.La regla general es reducir los datos del alcance más profundamente, de lo contrario, tiene esta situación.
Max
fuente