【问题标题】:Passing variable from button to modal将变量从按钮传递到模态
【发布时间】:2019-03-06 09:16:14
【问题描述】:

这是一个带引导程序的角度 1。

我有两个按钮:

<button type="button" data-toggle="modal" data-target="#myModal" data-name="jack">
    Btn 1
</button>

<button type="button" data-toggle="modal" data-target="#myModal" data-name="jill">
    Btn 2
</button>

然后我有一个模态:

<div id="myModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-body">
                Hello name
            </div>
        </div>
    </div>
</div>

我知道这可以很容易地使用 javascript 控制器完成。 但我想知道是否有可能在没有 javascript 的情况下解决这个问题。 如果单击Btn 1,我想显示文本Hello jack。如果点击了Btn 2,则Hello jill。 基本上:我可以直接在视图中读取变量 data-name 吗?

【问题讨论】:

  • 1) 定义共享的数据值。 2)单击按钮时创建事件。 3)在modal中实现数据绑定标记。

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

首先,如果没有 java 脚本,这一切都是不可能的。如果您检查按钮的所有属性,甚至是输入类型按钮,您必须使用 onclick 来触发按钮单击时的任何事件,并且 onclick 大多数时间调用脚本中编写的函数。 您只能使用 type=submit 或 href 导航到其他页面。

所以从我的角度来看,这几乎是不可能的。

【讨论】:

    【解决方案2】:

    你可以这样做。如果您创建一个模态工厂来重用模态,它会更容易。我找到了一个清晰的例子来帮助你:

    https://stackoverflow.com/questions/25341798/how-do-i-add-a-reusable-modal-dialog-in-angular
    

    如果你不明白,这里是另一个例子:

    https://codepen.io/capelo/pen/wKeEA
    

    好课。

    【讨论】:

      【解决方案3】:

      不可能没有 Javascript,但可以不添加 Javascript。您可以在模态框内使用 somes &lt;div&gt; 并在要显示的 toggle-collapse 上使用。唯一的问题是您不能传递带有数据属性的文本,但我认为这与您想要的相同。

      在我看来,最好写几行 Javascript,但你问是否可以在不添加自定义 Javascript 的情况下做到这一点,这是我的答案。 如果有自定义 data 属性,这是因为它们必须与 Javascript 一起使用。希望对您有所帮助。

      JSFiddle:https://jsfiddle.net/alvarofvr/p9fzydt7/22/

      代码片段:

      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
      
      <span data-toggle="collapse" data-target="#jackText,#jackButton">
        <button type="button" data-toggle="modal" data-target="#myModal">
          Btn 1
        </button>
      </span>
      
      <span data-toggle="collapse" data-target="#jillText,#jillButton">
        <button type="button" data-toggle="modal" data-target="#myModal">
          Btn 2
        </button>
      </span>
      
      <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header">
              <div id="jackButton" class="collapse">
                <button type="button" class="close" data-toggle="collapse" data-target="#jackText,#jackButton" data-dismiss="modal" aria-hidden="true">&times;</button>
              </div>
              <div id="jillButton" class="collapse">
                <button type="button" class="close" data-toggle="collapse" data-target="#jillText,#jillButton" data-dismiss="modal" aria-hidden="true">&times;</button>
              </div>
              <h4 class="modal-title">"Hello Jack" or "Hello Jill"?</h4>
            </div>
            <div class="modal-body">
              <div id="jackText" class="collapse">
                Hello Jack
              </div>
              <div id="jillText" class="collapse">
                Hello Jill
              </div>
            </div>
          </div>
        </div>
      </div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-12
        • 1970-01-01
        相关资源
        最近更新 更多