Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Angularjs promise更改的范围变量不更新dom_Angularjs_Q - Fatal编程技术网

Angularjs promise更改的范围变量不更新dom

Angularjs promise更改的范围变量不更新dom,angularjs,q,Angularjs,Q,我对AngularJS还很陌生,所以请容忍我。我正在尝试实现一个gallery slider类型的应用程序,但我需要在加载所有图像之前加载页面并执行一些操作,因为它们非常大,并且可能有很多图像。我正在尝试通过一个promise来实现这一点,它可以很好地工作并重新运行我的json对象,但当范围变量更改时,我看不到页面上的更新。考虑下面的例子: 我的指示: iconic.directive('slider', function () { return { restri

我对AngularJS还很陌生,所以请容忍我。我正在尝试实现一个gallery slider类型的应用程序,但我需要在加载所有图像之前加载页面并执行一些操作,因为它们非常大,并且可能有很多图像。我正在尝试通过一个promise来实现这一点,它可以很好地工作并重新运行我的json对象,但当范围变量更改时,我看不到页面上的更新。考虑下面的例子:

我的指示:

    iconic.directive('slider', function () {
    return {
        restrict: 'E',
        templateUrl: 'Home/_Slider',
        controller: 'SliderController'
    }
});
。。。请注意,我在指令中指定了控制器。这将工作并从下面的控制器呈现我的测试变量

我的控制器:

iconic.controller('SliderController', function ($scope, ImageFactory) {

    ImageFactory.getSliderImages()
        .then(function (result) {
            $scope.photos = result;
        });

    $scope.testvalue = 'test'

});
和am图像工厂:

iconic.factory('ImageFactory',function ($http, $timeout, $q) {
    return {
        getSliderImages: function () {
            var dfd = $q.defer();
            $timeout(function () {
                dfd.resolve([
                    { url: 'http://placehold.it/1920x480', caption: 'Fancy sports picture1' },
                    { url: 'http://placehold.it/1920x480', caption: 'Fancy sports picture2' },
                    { url: 'http://placehold.it/1920x480', caption: 'Fancy sports picture3' },
                    { url: 'http://placehold.it/1920x480', caption: 'Fancy sports picture4' }
                ])
            }, 2000);
            return dfd.promise;
        }
    }
});
稍后,我将通过$http get获取数据,但我只是将这些数据放在她身上进行测试

以及模板:

<div id="contentslider">
<!-- CONTENT -->
<ul class="contentSlider_list">
    <li>
        <img src="http://placehold.it/1920x480" width="1920" height="480" alt="" />
    </li>
    <li  data-ng-repeat="photo in photos">
        <img data-ng-src="{{ photo.url }}" width="1920" height="480" alt="" />
    </li>
</ul>

。。。请注意,添加第一个li只是为了查看它是否会渲染


无论如何,当应用程序启动时,我进入$scope.photos=result行,它有数据。但是永远不要更新dom。

错误在您的绑定中,您的代码是正确的。发布你的模板。我添加了模板代码。很奇怪。您的HTML中是否有一个
?看看与您的代码相同,并按预期工作。你没有任何CSS类来隐藏它吗?有任何控制台错误吗?实际上根本没有,因此我感到困惑。是的,我就在房间里。我在这里不知所措。还有什么我可以给你看的吗?顺便说一句,我找到了一些不起眼的帖子。说你应该在路上把它接起来。但是考虑到这篇文章的其他内容,我不知道如何设置它。看看,也许这会有帮助?