Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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
在angular中运行PHP_Php_Angularjs - Fatal编程技术网

在angular中运行PHP

在angular中运行PHP,php,angularjs,Php,Angularjs,我使用angular在wordpress站点中创建页面转换。我的站点加载一个普通的wordpress页面,该页面启动PHP并在页面主体中填充角度元素。然后,angular元素使用动画过渡来更改带有3个单独html页面的正文内容,这样页眉和页脚就不会受到影响 我在单独的html页面中有PHP。我原以为PHP会在每个页面进入视图之前触发——但我猜,因为页面是由angular而不是浏览器加载的,所以不会发生这种情况吧 <div id="pageone"> <p>This

我使用angular在wordpress站点中创建页面转换。我的站点加载一个普通的wordpress页面,该页面启动PHP并在页面主体中填充角度元素。然后,angular元素使用动画过渡来更改带有3个单独html页面的正文内容,这样页眉和页脚就不会受到影响

我在单独的html页面中有PHP。我原以为PHP会在每个页面进入视图之前触发——但我猜,因为页面是由angular而不是浏览器加载的,所以不会发生这种情况吧

<div id="pageone">
    <p>This is page 1.</p>
    <a href="#page2">Go to page 2 </a><br>

    <?php echo ('this php does not work'); ?>

    <p>This html is below php</p>
</div>

虽然我使用页面,但同样的概念也适用于视图中的div。在初始页面加载之后,是否仍然可以使用angular启动PHP?这可能吗?

AngularJS完全是客户端。您可以将PHP放入HTML模板中,但如果您不将Web服务器配置为将HTML文件解析为PHP,那么您的PHP甚至不会被解析

即使是这样,AngularJS也会缓存这些模板,因此它只能在服务器上“运行”一次。这意味着,如果所讨论的模板被调出,那么该模板使用的服务器上的数据发生更改,然后又被调回,对数据的更新不会反映在模板中,因为Angular对这些更新的了解是绝对为零的

@Jonast92在他的评论中说,一个好主意是尽量不要将客户端和服务器端的关注点混为一谈,并严格区分它们。在角度应用程序的模板中使用角度模型。而不是像:

<p><?php echo $item->description; ?></p>

AngularJS完全是客户端。您可以将PHP放入HTML模板中,但如果您不将Web服务器配置为将HTML文件解析为PHP,那么您的PHP甚至不会被解析

即使是这样,AngularJS也会缓存这些模板,因此它只能在服务器上“运行”一次。这意味着,如果所讨论的模板被调出,那么该模板使用的服务器上的数据发生更改,然后又被调回,对数据的更新不会反映在模板中,因为Angular对这些更新的了解是绝对为零的

@Jonast92在他的评论中说,一个好主意是尽量不要将客户端和服务器端的关注点混为一谈,并严格区分它们。在角度应用程序的模板中使用角度模型。而不是像:

<p><?php echo $item->description; ?></p>

不建议混合使用客户端编程和服务器端编程,但这是有可能的,我建议您继续搜索,也许可以找到一个关于当前答案如何不能满足您需求的后续结果。不要忘记。php不会解析.html文件,请确保有扩展名。php@LozCheroneツ - facepalm感谢你提醒我,那是一个周一下午。看看这个当你需要将你的Web服务器配置为以php的形式运行html时,你可以在apache conf或htaccess文件中这样做。不建议混合客户端编程和服务器端编程,但这是可能的,我建议您继续搜索,也许可以找到一个关于当前答案如何不能满足您需求的后续信息。不要忘记。html文件不会被php解析,请确保有扩展名。php@LozCheroneツ - facepalm感谢你提醒我,那是一个星期一的下午..看看这个当你需要将你的Web服务器配置为以php形式运行html时,你可以在apache conf或htaccess文件中这样做我可以在angular4中做同样的事情吗我可以在angular4中做同样的事情吗
angular.module('app').controller('controller', [
    '$scope', 'ItemManager',
    function($scope, ItemManager) {
        $scope.item = null;

        ItemManager.getItem('item-id').then(
            function(item)  {
                $scope.item = item;
            }, function() {
                console.log('load item failed');
            }
        );
    }
]);

angular.module('app').service('ItemManager', [
    '$http', '$q',
    function($http, $q) {
        var svc = {
            getItem: getItem
        };

        return svc;

        function getItem(id) {
             var defer = $q.defer();
             $http.get('/items/' + id)
                 .success(function(data) {
                     defer.resolve(data);
                 })
                 .error(function() {
                     defer.reject();
                 })
             ;

             return defer.promise;
        }
    }
]);