【问题标题】:Angularjs models not binding to json template used in http post requestAngularjs模型未绑定到http post请求中使用的json模板
【发布时间】:2013-07-18 07:16:54
【问题描述】:

我有一个静态/可变 json 请求模板,我在通过 $http 后工厂从控制器发送 $http POST 请求时使用它。问题是在 devtools 范围内的模型数据不会与模板的其余部分一起传递。示例如下。任何惊人的见解都会......非常惊人。

var a = 'a';
var b = $scope.b;
var c = $scope.c;

$rootScope.requestData = 
    [
        {
            "key": a, // Binds on submission = I'm happy
            "key": b, // Does not bind on submission = I'm angry
            "key": $rootScope.b, // Does not bind on submission = I'm angry
        }
    ] 

【问题讨论】:

  • 您需要提供更多上下文。 a,b,c在哪里定义?我什至不确定 requestData 的 json 格式是否正确。您是否暗示 [{key:a},{key:b}....]?
  • "$scope.b" 和 "$scope.c" 对应于输入到表单输入中的模型数据,而 "a" 是硬编码的静态值,它可能会或可能不会获得表单输入不久的将来。 $scope 中的动态值无法在 json 模板中填充它们的对应值。硬编码变量“a”可以毫无问题地传递和填充模板。我的主要问题是为什么硬编码变量会通过而 $scoped 变量会失败?

标签: javascript data-binding angularjs angularjs-scope angularjs-service


【解决方案1】:

不确定为什么要始终使用 $rootScope。角度范围遵循原型继承,因此您应该能够从子范围访问父范围属性(这发生在所有情况下,除了可以创建隔离范围的指令)。

您能否改为使用子范围本身,但引用父范围中的元素。您可能需要查看this SO post 以获得更好的理解。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-12
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 2021-07-21
    • 1970-01-01
    • 2017-08-24
    相关资源
    最近更新 更多