将范围变量值传递给对象

时间:2016-08-22 14:29:37

标签: javascript angularjs

我有三个scope变量:

我正在尝试将scope值传递给下面的对象,但是它失败了并且让我犯了错误......

$scope.content.new_line = "'\n'";
$scope.content.text1 = "Text.\n\n";
$scope.content.text2 = "Text.\n\n";

var content = {
    pageSize: $scope.pageSize,
    content: [
        {
            text: "some text",
            style: ['header', 'aligncenter']
        },
        $scope.content.new_line,
        $scope.content.text1,
        $scope.content.text2, {
            style: 'center'
        },
        '\n',
        'Text.\n\n', {
            text: 'Again some text',
            style: ['quote', 'small']
        }
    ]
};

任何人都可以告诉我如何正确地将scope值传递给此object

我正在使用pdfmake库... https://github.com/bpampuch/pdfmake

以下是正常内容:

var docDefinition = {
  content: [
    'paragraph 1',
    'paragraph 2',
    {
      columns: [
        'first column is a simple text',
        [
          // second column consists of paragraphs
          'paragraph A',
          'paragraph B',
          'these paragraphs will be rendered one below another inside the column'
        ]
      ]
    }
  ]
};

2 个答案:

答案 0 :(得分:0)

尝试添加:

$scope.content = {}

在第一行:>

答案 1 :(得分:0)

这可能是由于您对scope的定义时间访问权限与运行时访问权限之间存在差异。

var scope = {value: 5};

var content = {
    value: scope.value
};

scope.value = 6;
console.log(content.value);

在上面的代码片段中,控制台日志将显示" 5"。这是因为范围值是在定义时分配的。这是另一种选择:

var scope = {value: 5};

var content = {
    getValue: function() { return scope.value; }
};

scope.value = 6;
console.log(content.getValue());

此处控制台日志将显示" 6"。我猜这不是您正在寻找的解决方案,提供有关如何创建和访问此数据的更多详细信息,并且正确的解决方案可能更加明显。