php - 让javascript函数基于PHP变量返回状态的好方法?

标签 php javascript oop status

在我正在构建的 CMS 中,我想拥有自己的 javascript 命名空间对象 $cms。这个对象应该有一个方法/函数 hasIdentity 返回用户是否登录的状态。

有没有办法让这个方法/函数返回状态而不必求助于:

  • AJAX
  • 全局变量
  • 或在 PHP 中重写以下脚本

这就是我所拥有的 var:

var $cms = {
    hasIdentity: function()
    {
        return /* the status provided by PHP */;
    }
};

这可能有点审美问题,但我不想诉诸于此:

// write this global var;
var $isLoggedIn = false;

var $cms = {
    hasIdentity: function()
    {
        return $isLoggedIn;
    }
};

或者这个:

var $cms = {
    hasIdentity: function()
    {
        $isLoggedIn = this.do.some.ajax.call();
        return $isLoggedIn;
    }
};

我可能更多地考虑一种 OOP 方法,比如通过在 PHP 中编写来构造 $cms 对象:

<script type="text/javascript">
  $cms = new $cms( <?php echo $loggedIn ? 'true', 'false' ?> );
</script>

现在,我相信我不能像在 Javascript 中那样使用 new 关键字,但我希望你明白我的意思,看看我想用这个做什么。

最佳答案

你也可以这样做:

$cms.isLoggedIn = <?php echo $loggedIn ? 'true', 'false' ?>;

那是因为您的 $cms 对象不是构造函数。如果是,您将能够新建它。

var CMS = function (loggedIn) {
    this.loggedIn = loggedIn;
};

CMS.prototype.hasIdentity = function () {
    return this.loggedIn;
};

$cms = new CMS(<?php echo $loggedIn ? 'true', 'false' ?>);

关于php - 让javascript函数基于PHP变量返回状态的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316819/

相关文章:

php - 使用 ajax、sql 和 php 的动态下拉列表

php - Symfony 中的无效表单,没有错误

javascript - 如何在异步函数中对 Javascript 数组的值求和?

class - 项目管理中关系类型的UML类图

java - 容器和元素之间触发事件的解决方案?

php - PHP异常真的比错误有用吗? (进阶)

php - 如何在 PHP 中获取最后插入的行值并将其加 1

javascript - CK 编辑器支持 Rails 4 中的数学公式

javascript - javascript 如何处理 for 循环中未定义的比较器?

c++ - 在 C++ 中复制一个文件 10 次并编辑它们