<title ng-show="pageName">{{ $root.pageName }} - Domain Name</title>

Estoy tratando de cambiar el título de la página dinámicamente, cuando la página carga el título precarga {{ $root.pageName }} - Domain Name en lugar de ser - Domain Name y luego carga $rootScope.pageName cuando se procesa.

¿Hay alguna forma de ocultar {{ $root.pageName }} para que no se muestre en la carga de la página hasta que la aplicación tome la variable?

13
ngplayground 31 ago. 2014 a las 14:23

4 respuestas

La mejor respuesta

Puedes hacerlo así:

<title ng-bind="$root.title + ' - Your site'">Your site</title>

Tenga en cuenta que en este caso el título está en $rootScope.

EDITAR: Acabo de probar y parece que el guión sigue apareciendo, sin embargo, esto debería evitarlo:

<title ng-bind="$root.title ? $root.title + ' - Your site' : 'Your site' }]}">Your site</title>
13
Jon Snow 31 ago. 2014 a las 10:54

Puedes usar la directiva ng-cloak para ocultar datos de formulario sin procesar (sin compilar). Creo que te ayudará.

<title ng-cloak>{{ $root.pageName }} - Domain Name</title>

La directiva ngCloak se usa para evitar que el navegador muestre brevemente la plantilla html angular en su forma sin procesar (sin compilar) mientras se carga la aplicación.

Vea este enlace para más detalles.

2
Mukund Kumar 31 ago. 2014 a las 10:48

Usar ng-show en el título no tiene sentido. Podrías hacer algo como:

<title ng-bind="'MyApp - ' + $root.title">MyApp - Welcome</title>

$routeProvider.when('/product', {templateUrl: '/partials/product.html',  controller: 'ProductCtrl', title: 'Discover our Product'}).when('/about', {templateUrl: '/partials/about.html', controller: 'AboutCtrl', title: 'About US'});

En su ejecución (), agregue un $ rootScope. $ en:

$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
//Change page title, based on Route information
$rootScope.title = $route.current.title;});

Lea la fuente completa: https://coderwall.com/p/vcfo4q

0
Bilal Budhani 31 ago. 2014 a las 10:45

Sí, es posible.

Hacer algo como esto

<title ng-show="pageName">
    <span ng-model="pageName"></span>
    <span> - Domain Name</span>
</title>
-3
Aditya Sethi 31 ago. 2014 a las 10:34