javascript - varios - Cómo actualizar el objeto `$ scope` desde el controlador` directive`
varios controladores angularjs (1)
Estoy tratando de actualizar el objeto $scope
desde el controlador, pero no se está actualizando. pero en la consola me estoy actualizando.
aquí está mi código:
var galleryMenu = [''$route'', function ($route) {
return {
scope : true,
replace : true,
template : function () {
var page = $route.current.className || ''home'';
return galleryMenuItem(page);
},
controller : function ($scope, $element) {
$scope.galleryProject = function () {
$scope.galleryShow = !$scope.galleryShow;
console.log($scope.galleryShow) //gives me true, but `DOM` not updating.
}
}
}
}];
Su directiva utiliza el scope: true
significa que ha creado un ámbito heredado prototípicamente del ámbito principal.
Entonces tu objeto galleryShow
debería seguir dot rule
$scope.model = {};
$scope.model.galleryShow = ''something'';
Entonces, en su directiva podría obtener el objeto $scope.model
por herencia de prototipales y podría cambiarlo por $scope.model.galleryShow
cambiará el alcance principal.
Controlador directivo
controller : function ($scope, $element) {
$scope.galleryProject = function () {
$scope.model.galleryShow = !$scope.galleryShow;
console.log($scope.model.galleryShow) //gives me true, but `DOM` not updating.
}
}