Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS在加载整个页面之前显示模型文本_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS在加载整个页面之前显示模型文本

Javascript AngularJS在加载整个页面之前显示模型文本,javascript,angularjs,Javascript,Angularjs,下面的代码显示加载整个页面之前的{x.film}}。一旦页面被加载,一切都很完美,{{x.film}}就会消失。我需要把它去掉 它来自以下代码: 请参阅随附的屏幕截图 <div class="search-box"> <div class="input-group-lg right-inner-addon" ng-app="myApp" ng-controller="movieCtrl"> <i class="glyphicon glyphicon-se

下面的代码显示加载整个页面之前的{x.film}}。一旦页面被加载,一切都很完美,{{x.film}}就会消失。我需要把它去掉

它来自以下代码:
  • 请参阅随附的屏幕截图

    <div class="search-box">
      <div class="input-group-lg right-inner-addon" ng-app="myApp" ng-controller="movieCtrl">
        <i class="glyphicon glyphicon-search"></i>
        <input type="search" ng-model="film" ng-model-options="{debounce: 250}" class="form-control" placeholder="Search Films">
        <ul ng-show="film">
          <li ng-repeat="x in movies | filter:film | orderBy:'film'" style="list-style-type:none;"><a href="{{ x.param }}"><b>{{x.film}}</b></a></li>
        </ul>
      </div>
    </div>
    
    
    

    在控制器中,您可以将相关代码包装在

    if(x.param) {
     // your code
    }
    

    这将确保仅当为x定义了参数时才触发代码。我猜它是因为页面重新加载的中间状态而触发的

    在控制器中,您可以将相关代码包装在

    if(x.param) {
     // your code
    }
    

    这将确保仅当为x定义了参数时才触发代码。我猜它是因为页面重新加载的中间状态而触发的

    使用
    ng斗篷

    <li ng-cloak ng-repeat="x in movies | filter:film | orderBy:'film'" style="list-style-type:none;"><a href="{{ x.param }}"><b>{{x.film}}</b></a></li>
    
    根据
    AngularJS NGDOPE
    文件:

    当浏览器加载此css规则时,所有使用NgClope指令标记的html元素(包括其子元素)都将隐藏。当Angular在编译模板期间遇到此指令时,它将删除ngclope元素属性,使编译后的元素可见


    使用
    ng斗篷

    <li ng-cloak ng-repeat="x in movies | filter:film | orderBy:'film'" style="list-style-type:none;"><a href="{{ x.param }}"><b>{{x.film}}</b></a></li>
    
    根据
    AngularJS NGDOPE
    文件:

    当浏览器加载此css规则时,所有使用NgClope指令标记的html元素(包括其子元素)都将隐藏。当Angular在编译模板期间遇到此指令时,它将删除ngclope元素属性,使编译后的元素可见


    ng斗篷
    添加到您的ng应用程序分区。

    ng斗篷
    添加到您的ng应用程序分区。

    您是否正在从控制器获取电影?看起来问题可能在于加载模板时未初始化电影。如果是这样的话,那么在实际加载/查看控制器之前,应该考虑使用一个解决方案来获取数据。如果您使用的是ui路由器,则可以在以下状态下执行此操作:

    .state('yourStateName', {
        ...
        resolve: {
            movies: function($http) {
                return $http.get(....);
            }
        }
    });
    
    在你的控制器中,只需像

    .controller('yourControllerName', [..., 'movies', function(..., movies) {
        $scope.movies = movies;
    });
    

    您正在从控制器获取电影吗?看起来问题可能在于加载模板时未初始化电影。如果是这样的话,那么在实际加载/查看控制器之前,应该考虑使用一个解决方案来获取数据。如果您使用的是ui路由器,则可以在以下状态下执行此操作:

    .state('yourStateName', {
        ...
        resolve: {
            movies: function($http) {
                return $http.get(....);
            }
        }
    });
    
    在你的控制器中,只需像

    .controller('yourControllerName', [..., 'movies', function(..., movies) {
        $scope.movies = movies;
    });
    

    angularjs的新成员。如何在上述代码中实现同样的功能?angularjs新手。如何在上面的代码中执行相同的操作?这是正确的方法。ng斗篷将在完全加载后从元素中移除斗篷类。这样,当angular加载时,您将看不到元素。这是正确的方法。ng斗篷将在完全加载后从元素中移除斗篷类。这样,当angular加载时,您将看不到元素。这是我最喜欢的解决此问题的方法,因为它有助于保持控制器非常干净和集中。ng斗篷也可以工作,但它肯定有更多的“黑客”感觉,绝对有助于保持控制器清洁,但它还有其他优点。对我来说,最重要的是,如果在获取数据时遇到错误,我可以处理这些错误,并以比导航到并显示损坏的视图更好的方式通知最终用户。这是我最喜欢的解决此问题的方法,因为它有助于保持控制器非常干净和集中。ng斗篷也可以工作,但它肯定有更多的“黑客”感觉,绝对有助于保持控制器清洁,但它还有其他优点。对我来说,最重要的是,如果在获取数据时遇到错误,我可以处理这些错误并以比导航到并显示损坏的视图更好的方式通知最终用户。