Javascript 角条件绑定

Javascript 角条件绑定,javascript,angularjs,Javascript,Angularjs,我有shop属性,我想根据传入的类型(可以是字符串或对象)对其进行不同的处理。如何正确绑定该属性,以便传递字符串和对象,然后根据传递的类型对其进行不同的处理 通过这种方式,对象传递工作得非常好,但传递字符串会给该属性一个值“0”: angular.module('showcaseApp') .directive('card', function ($window, $state) { return { templateUrl: '/card.html', re

我有
shop
属性,我想根据传入的类型(可以是字符串或对象)对其进行不同的处理。如何正确绑定该属性,以便传递字符串和对象,然后根据传递的类型对其进行不同的处理

通过这种方式,对象传递工作得非常好,但传递字符串会给该属性一个值“0”:

angular.module('showcaseApp')
  .directive('card', function ($window, $state) {
    return {
      templateUrl: '/card.html',
      restrict: 'E',
      replace: true,
      scope: {
        shop: '='

      },
      link: function(scope, element, attrs) {
         attrs.$observe('shop', function (value) {
          if (value) {

          }
        });
      }
    };
  });

使用
&
绑定允许我传递字符串(使用$observe捕捉它),但对象不能以这种方式传递。我想两者都能通过。这只能通过创建具有不同绑定的新属性来解决

找到了答案。我传递了如下字符串:

var id = scope.pageContent.content[i].id;
var id = "'" + scope.pageContent.content[i].id + "'";
相反,我应该这样传递:

var id = scope.pageContent.content[i].id;
var id = "'" + scope.pageContent.content[i].id + "'";

一切正常✨

可能的重复项您不能进行
typeof
检查吗?然后用
string
vs
object
做一些事情?问题是我想用一个属性来做,但我不知道如何传递值,object和srting似乎需要不同类型的绑定。在传递值之后,当然,我将进行一次类型检查。如果执行
$scope.$watch(“shop”…
),则应获得传递的实际对象/字符串